.htaccess 重定向太多(结合 404 和删除 www)

.htaccess Too Many Redirects (Combining 404 With Remove www)

使用 .htaccess,我能够从我的站点中删除 www url 或者我能够处理我站点上任何不存在的页面的 404 重定向。但是,如果我尝试同时拥有两者,我会收到一条错误消息 "too many redirects" 并且我的网站将不再加载。我该如何解决这个问题,以便我既可以删除 www 又可以毫无问题地进行 404 重定向?

编辑:我原来的 post 显然不是重复的。

.htaccess 代码:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%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]

试试下面的规则集:

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]

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