我想将我的网站从www重定向到非www,但没有“主页”。
EG。 www.domain.com或www.domain.com/什么都不做,但www.domain.com/everything-else应重定向到domain.com/everything-else
为什么以下代码重定向也是“主页”?
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteCond %{REQUEST_URI} !^$
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]
答案 0 :(得分:1)
也许是因为您还可以通过^(.*)$
中的RewriteRule
来允许空网址请求。
试试这个:
RewriteRule ^(.+)$ http://%1/$1 [R=301,NC,L]
.*
接受任何charachter零次或多次,而.+
会接受任何字符一次或多次。
答案 1 :(得分:0)
关于此; http://localhost/ (index.php says $_SERVER['REQUEST_URI'] is /)
我认为,即使显示网站的根“REQUEST_URI”不能为空,也会是“/”。所以也许你应该尝试这样的事情;
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC] RewriteCond %{REQUEST_URI} !^/$ RewriteRule ^(.+)$ http://domain.com/$1 [R=301,L]
答案 2 :(得分:0)
这不起作用吗?
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteCond %{REQUEST_URI} !^\/?$
RewriteRule ^(.*)$ http://%1/$1 [R=307,NC,L]