www到子目录中的非www重定向错误

时间:2016-05-17 15:29:31

标签: apache .htaccess redirect

这是我的.htaccess文件:

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在子文件夹中时,如何使其工作?

1 个答案:

答案 0 :(得分:0)

如果您要将.htaccess文件放在子目录中,则需要更改此内容:

<强>从

RewriteBase /

RewriteBase /subdirectory

还可以尝试:(没有RewriteCond

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