使用.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]
答案 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
组是否存在。