我的服务器上运行的网站很少。我希望除了一个网站www.abc-xyz.org
之外,所有网站都从www更改为非www。所以我先写了具体规则,然后是通用规则。但它不起作用。当我试图在浏览器中打开www.abc-xyz.org
时,它会进入无限循环。
我的.htaccess文件
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.abc-xyz\.org [NC]
RewriteRule ^(.*)$ http://www.abc-xyz.org/$1 [R=301,L]
#Generic redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>
答案 0 :(得分:1)
循环是预期的,因为页面一直在加载。您要做的是删除第一个重定向,并在第二个重定向中添加“not”条件。
RewriteCond %{HTTP_HOST} !^www\.abc-xyz\.org [NC]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]