2014-01-07 23 views
6

Ich habe mich umgesehen und habe einige Regeln und Bedingungen versucht, die funktionierten; während einige nicht funktionierten oder die Bedingung zu viel erfassen würde, wodurch andere Domänen ebenfalls umgeleitet würden. Dies funktioniert für mich:htaccess redirect + Unterordner in URL verbergen

# Redirect (also catches www.) 
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ 
RewriteRule ^(/)?$ subfolder [L] 

in sich ergibt, wenn Sie besuchen www.domain.com ODER domain.com Großen domain.com/subfolder umgeleitet, aber I'dd auch wie der/Unterordner Teil zu sein von der URL versteckt.

Wie erreiche ich das?

Beachten Sie, dass ich mehrere Domänen habe, jeder sollte in einen eigenen Ordner umleiten. Ich möchte auch, dass jede Seite in ihrem jeweiligen Ordner noch sichtbar ist.

www.domain.com/abc sollte also umleiten aber zeigen domain.com/subfolder/abc domain.com/abc

Antwort

10

diese Regel Versuchen:

# remove www 
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule^http://%1%{REQUEST_URI} [NE,R=301,L] 

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ 
RewriteRule !^subfolder/ /subfolder%{REQUEST_URI} [L] 
+0

Das funktioniert! Aber mir ist gerade aufgefallen, dass das www. Teil wird als optional behandelt und nicht entfernt. Während das völlig in Ordnung ist, ist es möglich, es auch immer das www entfernen zu lassen. ? – Zerreth

+0

Eigentlich benötigen wir eine separate www-Entfernungsregel, da dies nur intern neu geschrieben wird. – anubhava

+0

Danke, das hat mir geholfen, das gleiche Problem zu lösen. :-) – r0ber7