将所有子目录子页面重定向到子目录根
Posted
技术标签:
【中文标题】将所有子目录子页面重定向到子目录根【英文标题】:Redirect all subdirectory child pages to subdirectory root 【发布时间】:2016-01-19 16:15:32 【问题描述】:我试图找到上述问题的答案,但一直未能如愿。我发现的大多数示例都是将所有子目录子页面重定向到根目录,而不是重定向到子目录的根目录。
例如,我希望所有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 时,上述两种情况都会导致重定向循环错误——这里有什么想法或建议吗?
【问题讨论】:
【参考方案1】:您需要在正则表达式中的目录名称后使用.+
:
RewriteCond %QUERY_STRING ^$
RewriteRule ^(subdirectory)/(.+)$ /$1/ [R=301,NC,L]
否则subdirectory/.*
也匹配/subdirectory/
并导致重定向循环。
【讨论】:
这条规则没有错,因为它适用于我的 Apache。对于 500,您应该检查您的 Apache error.log 并在此处报告错误【参考方案2】:对我来说,答案根本不起作用,但这有:
RedirectMatch 301 ^/subdirectory/(.+)$ /subdirectory
【讨论】:
以上是关于将所有子目录子页面重定向到子目录根的主要内容,如果未能解决你的问题,请参考以下文章