2016-05-17 52 views
0

這是我的.htaccess文件:WWW到非www重定向錯誤子目錄

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 

它的偉大工程,但如果我把它放在一個子目錄,重定向到非www不起作用。我試圖使用我在頂部製作的%{ENV:CWD}環境變量,但它不起作用。

如何讓htaccess在子文件夾中工作?

回答

0

如果你打算把你的.htaccess文件在子目錄中,那麼您需要更改此:

RewriteBase/

RewriteBase /subdirectory 

而且試試這個:(沒有RewriteCond

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

我無法更改RewriteBase,因爲我不知道文檔根的位置。這就是爲什麼我創建'%{ENV:CWD}'變量的原因,但我不知道該把它放在哪裏。 –