【问题标题】: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 时,上述两种情况都会导致重定向循环错误——这里有什么想法或建议吗?

【问题讨论】:

    标签: .htaccess redirect


    【解决方案1】:

    您需要在正则表达式中的目录名称后使用.+

    RewriteCond %{QUERY_STRING}  ^$
    RewriteRule ^(subdirectory)/(.+)$ /$1/ [R=301,NC,L]
    

    否则subdirectory/.* 也匹配/subdirectory/ 并导致重定向循环。

    【讨论】:

    • 这条规则没有错,因为它适用于我的 Apache。对于 500,您应该检查您的 Apache error.log 并在此处报告错误
    【解决方案2】:

    对我来说,答案根本不起作用,但这有:

    RedirectMatch 301 ^/subdirectory/(.+)$ /subdirectory

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多