.htaccess重定向太多(将404与删除www结合使用)

时间:2015-04-25 22:54:15

标签: apache .htaccess mod-rewrite url-redirection

使用.htaccess,我可以从我的网站网址中删除www,或者我可以为我网站上任何不存在的页面处理404重定向。但是,如果我尝试同时使用这两个,我会收到错误消息,说“重定向太多”,我的网站将不再加载。我如何解决这个问题,以便我可以删除www并重定向404重定向?

编辑:我原来的帖子显然已经不重复了。

.htaccess代码:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .? http://www.%1example.com%{REQUEST_URI} [R=301,L]

1 个答案:

答案 0 :(得分:1)

尝试使用以下规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule . http://%1%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} ^((?!www\.)[a-z.]+)example\.com$ [NC]
RewriteRule . http://www.%1example.com%{REQUEST_URI} [R=301,L]

重定向循环的发生是因为您将网址重定向到http://www.%1example域,而不管%1组是否存在。