Apache将pathredirect到根目录

我正在尝试将http://example.com/ *redirect到http://example.com/,但每次我都会有一个redirect循环。 什么是不正确的呢? 这两个(或任何其他正则expression式的组合)都不起作用:

RedirectMatch temp ^/.+$ http://example.com RedirectMatch temp ^/.+$ http://example.com/ 

这总是匹配,并且正在创buildredirect循环。

所以你想要任何不是在example.com上的绝对根目录临时redirect到example.com 。 如果是这样,我会build议你试试这个:

 RewriteEngine on RewriteRule ^(.*)$ / [L,R=307] 

或者也许这个:

 RewriteEngine on RewriteRule ^.+$ / [R=307,NC,L] 

编辑:如果你需要添加一个尾部的斜杠到URL,你可以这样做; 用我上面的第二个例子:

 # Settings for adding a trailing slash to the URL RewriteEngine On RewriteCond %{REQUEST_URI} ^/$ RewriteRule ^(.*)$ http://%{HTTP_HOST}$1/ [R=301,L] RewriteEngine on RewriteRule ^.+$ / [R=307,NC,L] 

此外, 这个网站有一个很好的/简洁的解释之间的区别是RedirectMatch (mod_alias)和RewriteRule (mod_rewrite)之间。

RedirectMatch temp (example.com)/.*$ $1/