简单的.htaccess RewriteRule无效

时间:2016-02-09 15:19:50

标签: apache .htaccess mod-rewrite

不确定为什么这不起作用:

RewriteEngine On

RewriteCond %{HTTP_HOST} example.com$ [NC]
RewriteRule ^.+ http://example.com [L]

RewriteCond正在尽我所能。

对我而言,RewriteRule读取:

  • ^开始比赛
  • .+一个或多个字符

然而, Firefox 44 正在告诉我

  

该页面未正确重定向

     

Firefox检测到服务器正在重定向请求   这个地址永远不会完成。

如果RewriteRule^.*开头,我希望服务器能够无限循环。

但是^.+应该有效,不是吗?

1 个答案:

答案 0 :(得分:3)

由于在REQUEST_URI中添加了DirectoryIndex处理程序,您将获得重定向循环。

要解决此问题,您可以使用以下规则:

RewriteCond %{HTTP_HOST} www.localhost$ [NC]
RewriteCond %{REQUEST_URI} !^/index\. [NC]
RewriteRule ^.+ http://www.localhost [L,R]

RewriteCond %{REQUEST_URI} !^/index\. [NC]将停止重定向循环,因为/index.html/index.php通常是DirectoryIndex处理程序。