2016-05-10 7 views
1

Ich versuche, den Benutzer, der auf mein Webstammverzeichnis zugreift, in ein Unterverzeichnis umzuleiten..HTACCESS Redirect 301 alle Dateien vom Stammverzeichnis zum Unterverzeichnis

ich dies versuchen:

// 301 Redirect Gesamtes Verzeichnis

RedirectMatch 301 /(.*) /1.0/projects/navigator/$1 

aber es funktioniert nicht, aber wiederholt den Pfad des Unterverzeichnisses mehrmals:

[my_domain] /1.0/projects/navigator/1.0/projects/navigator/1.0/projects/navigator/1.0/projects/navigator/1.0/projects/navigator/1.0/projects/navigator/1.0/projects/navigator/1.0/projects/navigator/1.0 /projects/navigator/1.0/projects/navigator/1.0/projects/navigator/1.0/projects/navigato r/1.0/projekte/navigator/1.0/projekte/navigator/1.0/projekte/navigator/1.0/projekte/navigator/1.0/projekte/navigator/1.0/projekte/navigator/1.0/projekte/navigator/1.0/projekte/navigator/

Wie geht das?

Vielen Dank im Voraus

+0

Ich möchte auch das gleiche wie Rewrite-Regel als Alternative zur Umleitung. Thx –

Antwort

1

Setzen Sie den follwoing Code in Stammverzeichnis .htaccess Datei

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{REQUEST_URI} !^/1.0/projects/navigator/ 
# the above line will exclude the same sub directory from the rule below so 
# no looping as what happened with you 
RewriteRule ^(.*)$ /1.0/projects/navigator/$1 [R=302,L] 
+0

Es ist keine echte Weiterleitung, auch wenn es die URL in der Adressleiste ändert; Ressourcen, die relative URLs verwenden, funktionieren nicht. Vielleicht würde das von einem Neuschreiben erwartet, sollte aber bei einer Weiterleitung nicht der Fall sein. Ein echtes (unsichtbares) Neuschreiben wäre die am meisten bevorzugte Lösung. –

+0

Die www-Bedingung macht es auch ein bisschen knifflig ... –

1

Sie haben den Pfad ausschließen Sie umleiten:

RedirectMatch 301 /((?!1.0/projects/navigator).*) /1.0/projects/navigator/$1 

sonst werden Sie eine bekommen Redirect-Loop-Fehler, weil /1.0/projects/navigator/ auch das Muster /(.*) entspricht und Redirects die Anfrage an dasselbe Ziel mehrmals.

Löschen Sie die Caches Ihres Browsers, bevor Sie dies testen.

+0

Es funktioniert tatsächlich nicht, da es immer noch die zwei letzten Segmente loops (/ projects/navigator /) –

+0

@henrikhansen seltsam, funktioniert dieser Code gut auf meinem Apache-Server. – starkeen

+0

Löschen Sie den Cache Ihres Browsers. – starkeen