将所有www重定向到非www站点,但一个站点除外

时间:2012-11-30 11:53:24

标签: php .htaccess redirect

我的服务器上运行的网站很少。我希望除了一个网站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>

1 个答案:

答案 0 :(得分:1)

循环是预期的,因为页面一直在加载。您要做的是删除第一个重定向,并在第二个重定向中添加“not”条件。

RewriteCond %{HTTP_HOST} !^www\.abc-xyz\.org [NC]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]