我正在尝试重定向http://example.com/* 到http://example.com/但每次我都会遇到重定向循环。这有什么不对吗?这两个(或任何其他正则表达式组合)都不起作用:
RedirectMatch temp ^/.+$ http://example.com
RedirectMatch temp ^/.+$ http://example.com/
这总是匹配的,并且正在创建重定向循环。
答案1
因此,您希望将任何非绝对根目录example.com
暂时重定向到example.com
。如果是这样,我建议您尝试以下操作:
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)之间有什么区别。
答案2
RedirectMatch temp (example.com)/.*$ $1/