【问题标题】:How can i 301 redirect a subfolder and everything after it?我如何 301 重定向子文件夹及其之后的所有内容?
【发布时间】:2017-10-02 01:36:27
【问题描述】:

我正在尝试将子文件夹以及之后的任何内容重定向到主页。

例如:

example.com/subfolder/extra-stuff > example.com

extra-stuff 不断变化并自动生成,因此我希望重定向也将其删除。

我正在使用:

Redirect 301 /subfolder(.*) http://www.example.com

但是,这将导致http://www.example.com/extra-stuff

如果/subfolder(and anything else after subfolder) 重定向到家,我有办法说吗?

感谢您的任何建议!

【问题讨论】:

    标签: .htaccess magento redirect


    【解决方案1】:

    Redirect 指令使用简单的前缀匹配,匹配后的所有内容都被复制到目标 URL 的末尾(这就是您在此处看到的内容)。然而,Redirect 指令也不支持正则表达式语法,所以像 (.*) 这样的“模式”实际上将匹配文字字符 (.*) - 这应该在你的例子中没有工作?!

    您需要改用 RedirectMatch(也是 mod_alias 的一部分),它使用正则表达式,而不是前缀匹配。

    例如:

    RedirectMatch 301 ^/subfolder http://www.example.com/
    

    开始/subfolder 的任何请求都将被重定向到http://www.example.com/

    您需要在测试前清除浏览器捕获。


    您将您的问题标记为“Magento”(可能正在使用 mod_rewrite)。但是,您应该注意,如果您已经在使用 mod_rewrite 进行重写/重定向,那么您可能应该使用 mod_rewrite 而不是 mod_alias 来执行此重定向,因为您可能会遇到冲突。

    例如,等效的 mod_rewrite 指令是:

    RewriteRule ^subfolder http://www.example.com/ [R=301,L]
    

    注意RewriteRulepattern 上没有斜线前缀。这需要靠近您的 .htaccess 文件的顶部。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多