it-swarm.com.de

So bringen Sie Apache2 dazu, in ein Unterverzeichnis umzuleiten

Ich verwende Apache2 auf Debian Etch mit mehreren virtuellen Hosts.

Ich möchte umleiten, damit http://git.example.com geht zu http://git.example.com/git/

Sollte wirklich einfach sein, aber Google schneidet es nicht ganz. Ich habe das Redirect- und Rewrite-Zeug ausprobiert und sie scheinen nicht ganz das zu tun, was ich will ...

70
Hamish Downer

Fühlen Sie sich ein bisschen albern - ein bisschen mehr googeln ergab die Antwort, nach der ich gesucht hatte:

RedirectMatch ^/$ /git/

Grundsätzlich die Wurzel umleiten und nur die Wurzel.

Dieser Code könnte in einem .htaccess Datei (es gibt ein Tag dafür, also nehme ich an, dass dies der ursprüngliche Anwendungsfall ist). Wenn Sie jedoch bearbeiten können, fügen Sie die Apache-Konfiguration des Hauptservers in den Abschnitt für Ihre Website ein, wahrscheinlich innerhalb eines <VirtualHost> Sektion.

Die Dokumente für RedirectMatch sagen, dass Kontext "Serverkonfiguration, virtueller Host, Verzeichnis, .htaccess" sein kann.

115
Hamish Downer

Mit der Weiterleitung haben Sie dort die richtige Antwort. Sie müssen vorsichtig sein, wenn Sie alles an einen anderen Ort umleiten, da Sie dort rekursive Weiterleitungen erhalten können. Dies geschieht, wenn Sie eine Wartungsseite einrichten möchten.

3
Rory

Sie können die Redirect-Direktive verwenden.

<Directory />
   Redirect permanent / http://git.example.com/git/
   ...
</Directory>
3
Steve Chui

Die akzeptierte Antwort hat mein Problem behoben, aber ich habe auch festgestellt, dass ich eine 404-Umleitung für nicht vorhandene Seiten hinzufügen musste. In meiner Situation befindet sich eine OwnCloud-Installation eine Ebene unter root ( https: // Beispiel). com/owncloud ).

Dies funktionierte für mich, um alles in mein Unterverzeichnis zu senden:

# redirect from root to subdirectory
RedirectMatch ^/$ /thesubdirectory/

# redirect on 404 to subdirectory
ErrorDocument 404 /thesubdirectory/index.php
0
J4yne