htaccess将非www子文件夹重写为www子文件夹重定向到www root

时间:2014-04-25 17:10:38

标签: php apache .htaccess mod-rewrite redirect

我想重定向

mydomain.com/subfolder

www.mydomain.com/subfolder

使用.htaccess

这就是我的尝试。

Root .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .? http://www.%{HTTP_HOST}/{REQUEST_URI} [R=301,L]

子文件夹.htaccess:

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

出于一个奇怪的原因是重定向

mydomain.com/subfolder

www.mydomain.com

我尝试只实现根.htaccess,只是子文件夹.htacess,root和子文件夹.htacess,没有.htaccess重定向,只使用PHP重定向重定向。所有这些选项都将mydomain.com/subfolder路由到www.mydomain.com。

是否有其他东西可以重定向流量?

谢谢

1 个答案:

答案 0 :(得分:5)

看起来规则中存在一些语法错误。在root htaccess中尝试将其重定向到www,包括子文件夹。

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