我试图找到上述问题的答案,但却无法这样做。我发现的大多数示例都是将所有子目录子页面重定向到根目录,而不是重定向到子目录的根目录。
例如,我希望所有http://domain.com/subdirectory/ *转到http://domain.com/subdirectory/并在.htaccess中实施以下重定向规则:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^subdirectory/(.*)$ /subdirectory/ [R=301,NC,L]
我也尝试过:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^subdirectory/(.*)$ http://domain.com/subdirectory/ [R=301,NC,L]
上述两种情况在尝试转到http://domain.com/subdirectory时都会导致重定向循环错误 - 此处有任何想法或建议吗?
答案 0 :(得分:0)
您需要在正则表达式中的目录名后使用.+
:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(subdirectory)/(.+)$ /$1/ [R=301,NC,L]
否则subdirectory/.*
也会匹配/subdirectory/
并导致重定向循环。
答案 1 :(得分:0)
对我来说,答案根本不起作用,但这有:
RedirectMatch 301 ^/subdirectory/(.+)$ /subdirectory