我正在尝试将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/