2016-05-17 11 views
0

Dies ist meine .htaccess-Datei:www zu nicht-www Redirect Fehler im Unterverzeichnis

Options +FollowSymLinks -MultiViews -Indexes 
RewriteEngine On 
RewriteBase/

RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*)\1$ 
RewriteRule ^.*$ - [E=CWD:%2] 

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

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] 
RewriteRule ^(.+?)/$ %{ENV:CWD}$1 [R=301,L] 

RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC] 
RewriteRule (.*?)index\.php/*(.*) %{ENV:CWD}$1$2 [R=301,L,NE] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^(.*)$ %{ENV:CWD}./index.php?rewrite=$1 

Es funktioniert gut, aber wenn ich es in einem Unterverzeichnis setzen, die Umleitung auf nicht-www funktioniert nicht. Ich habe versucht, die %{ENV:CWD} Umgebungsvariable zu verwenden, die ich oben gemacht habe, aber es hat nicht funktioniert.

Wie kann ich es machen, wenn htaccess in einem Unterordner ist?

Antwort

0

Wenn Sie vorhaben, Ihre .htaccess-Datei in einem Unterverzeichnis setzen, dann müssen Sie dies ändern:

von

RewriteBase/

zu

RewriteBase /subdirectory 

Auch versuchen Sie dies: (ohne die RewriteCond)

RewriteRule ^www\.(.*)$ http://%1/$1 [R=301,NC,L] 
+0

Ich kann die RewriteBase nicht ändern, weil ich nicht weiß, wo das Dokumentstammverzeichnis sein wird. Deshalb habe ich die '% {ENV: CWD}' Variable erstellt, aber ich weiß nicht wohin. –

Verwandte Themen