Virtueller Apache-Host

Virtueller Apache-Host

Ich möchte dies tun

<VirtualHost *>
    ServerName myDomain.com
    DocumentRoot /var/www/myDomain

    <Directory /var/www/myDomain>
         Rewrite on
         RewriteRule ^blog/(.*)$ /var/www/myBlog/$1 [L]
    </Directory>
</VirtualHost>

Also http://www.myDomain.com/blog/liest Dateien aus einem anderen Verzeichnis. Das obige funktioniert nicht, also wie kann ich das machen, ohne die Dateien zu verschieben?

Antwort1

Es ist nicht erforderlich, hierfür mod_rewrite zu verwenden. Aliasist besser geeignet.

# Alias: Maps web paths into filesystem paths and is used to
# access content that does not live under the DocumentRoot.
Alias /blog /var/www/myBlog

Wenn Sie die Einstellungen nur für Ihr Blog ändern möchten, fügen Sie einStandortrichtlinie.

<Location /blog>
    Allowoverride All
</Location>

Antwort2

Mach es so:

<VirtualHost *>
  ServerName myDomain.com
  DocumentRoot /var/www/myDomain
  Alias /blog/ /var/www/myBlog/
</VirtualHost>

Antwort3

LocationTags sind nur ein generischer Container für Apache-Direktiven. Verwenden Sie sie also, um alles zu „verpacken“, was Sie auf den Abschnitt „externe Ansicht“ der Website anwenden möchten. Sehr nützlich, wenn Sie Inhalte aus mehreren physischen Verzeichnissen in eine größere Struktur ziehen. Sie können denselben Regelsatz auf alle anwenden, anstatt mehrere DirectoryEinträge zu haben.

AliasDirektive ist eine einfache Umleitung, ideal für lange Pfade, die als kurze und übersichtliche Zeiger angezeigt werden.

DocumentRootDie Direktive legt das oberste Webinhaltsverzeichnis fest.

Sie alle befassen sich mit Verzeichnissen, aber sie sind alle ein bisschen unterschiedlich. „Location“ ist hauptsächlich für das zuständig, was ich die „Webansicht“ nennen würde – wie es von außen sichtbar ist. „Directory“ ist für die „physische Ansicht“ zuständig, die sich mit tatsächlichen Verzeichnissen im Dateisystem befasst. Wenn der Inhalt eines Verzeichnisses als eine URL ausgegeben wird, gibt es keinen funktionalen Unterschied zwischen ihnen.

Wenn Sie jedoch anfangen, mehrere Verzeichnisse zu „zusammenzustellen“ und sie über mehrere URLs bereitzustellen, die nicht unbedingt ihre Dateisystemhierarchie widerspiegeln, müssen Sie alle diese Anweisungen mischen und anpassen, um den gewünschten Effekt zu erzielen. Nur weil sich zwei Anweisungen in einer Situation gleich verhalten, bedeutet dies nicht, dass sie sich in einer anderen Situation genauso verhalten.

verwandte Informationen