2016-05-17 8 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}', но я не знаю, куда ее поместить. –

Смежные вопросы