it-swarm.com.de

Apache-Umleitung in einen anderen Ordner, sowohl innerhalb als auch außerhalb des Dokumentenstamms

Ich habe kürzlich einen Heim-Web-/Medienserver eingerichtet und habe einige Probleme mit einigen Einstellungen. Es funktioniert einwandfrei für das Bereitstellen von Webseiten usw., aber ich habe jetzt die Struktur des Hauptdokumentstamms neu organisiert und es ist jetzt schwer zu bekommen.

Aktuelle Struktur ist:

-drive
--sites
---live
----siteA
----siteB
----siteC
---dev
--media
---films
---series

Ich versuche, siteC zu bedienen, wenn siteA/siteC aufgerufen wird.

Beispiel: mydomain.com zeigt die Dateien an, die sich in siteA befinden. Dies ist in Ordnung. SiteB und SiteC haben keine eigenen Domains usw., und ich möchte nicht, dass sie Unterordner von SiteA sind. Ich möchte also, dass mydomain.com/siteB den Inhalt von SiteB und den von SiteC bereitstellt.

Ich möchte dann dieselbe Voraussetzung für den Medienserver verwenden, sodass unter myDomain.com/media eine Verzeichnisliste der Dateien im Medienverzeichnis angezeigt wird.

das Dokumentenstammverzeichnis in Apache ist d:/sites/live. Ich verwende dann virtuelle Hosts, um zu bestimmen, was passiert. Dies ist in Ordnung mit dem Standard mydomanA.com oder myDomainB.com, aber nicht, wenn versucht wird, das zu erreichen, was ich oben erwähnt habe.

Dies ist einer der Versuche:

<VirtualHost *:80>
    DocumentRoot "D:/Sites/Live/siteA"
    ServerName www.mydomain.com/siteA
    <Directory "D:/Sites/Live/siteA">
        Order allow,deny
        Allow from all
        AllowOverride All
  </Directory>

Ein weiterer fehlgeschlagener Versuch, stattdessen Aliase zu verwenden:

<VirtualHost *:80>
    DocumentRoot "D:/Sites/Live/siteA"
    ServerName www.mydomain/siteA
    <Directory "D:/Sites/Live/siteA">
        Order allow,deny
        Allow from all
        AllowOverride All
  </Directory>

  Alias /siteA D:/sites/live/siteA
  <directory "D:/sites/live/siteA">
    Order allow,deny
    AllowOverride All
    </directory>
</VirtualHost>

Vielen Dank für jede Hilfe. Ich habe in den letzten Stunden an meinen Haaren gezogen, um eine Lösung zu finden.

Bearbeitet, um einen Kommentar zu beantworten.

Die erwartete Eingabe und Ausgabe würde wie folgt aussehen:

mydomain.com = d:/sites/live/siteA
mydomain.com/siteB = d:/sites/live/siteB
mydomain.com/siteC = d:/sites/live/siteC

und der Medienserver wäre:

mydomain.com/media = d:/media
1
null

User trecht on serverfault hat diese Antwort gepostet:


Folgendes wurde unter Scientific Linux getestet:

<VirtualHost *:80>
  DocumentRoot "/var/www/html/siteA"

  Alias /siteB/ "/var/www/html/siteB/"
  <Directory "/var/www/html/siteB/">
       Order allow,deny
       Allow from all
       AllowOverride All
  </Directory>

  Alias /siteC/ "/var/www/html/siteC/"
  <Directory "/var/www/html/siteC/">
       Order allow,deny
       Allow from all
       AllowOverride All
  </Directory>

  Alias /media/ "/media/"
  <Directory "/media/">
       Options  +Indexes
       Order allow,deny
       Allow from all
       AllowOverride All
   </Directory>
</VirtualHost>

und die Testergebnisse sind wie folgt:

InputOutput
mydomain.comcontent of siteA
mydomain.com/siteA/404
mydomain.com/siteB/content of siteB
mydomain.com/siteC/content of siteC
mydomain.com/media/content of media

Hinweis: Der Zugriff auf das Verzeichnis /media führte dazu, dass Directory index forbidden by Options directive: vom error.log protokolliert wurde. Das Hinzufügen von Options +Indexes löste das Problem. Diese Lösung wurde gefunden hier .

0
null