【问题标题】:301 redirect .htaccess301 重定向.htaccess
【发布时间】:2011-05-01 13:11:30
【问题描述】:

如何进行 301 重定向,例如:子目录 /Blog//blog/ 与 .htaccess?

【问题讨论】:

    标签: .htaccess url-redirection http-status-code-301


    【解决方案1】:
    Redirect 301 /Blog /blog
    

    或者使用http://www.htaccessredirect.net/index.php之类的东西

    【讨论】:

      【解决方案2】:

      马上想到的方式:

      RewriteEngine on
      RewriteBase /path/to/your/web/app
      RewriteRule ^Blog$ blog [R=301,L]
      RewriteRule ^Blog/(.*)$ blog/$1 [R=301,L]
      

      可能有比 mod_rewrite 更好的方法,而且我不能 100% 确定外部重定向是否会正常工作——您可能需要完整的 URL——但你就可以了。

      【讨论】:

        【解决方案3】:

        这是最简单的.htaccess方案,放在/.htaccess中:

        Redirect 301 /Blog /blog
        

        但它确实是有限的。如果您想捕获所有可能的 CaSe 拼写错误,并转发任何其他路径信息(例如 /Blog/foo/bar.html),请改用它:

        RedirectMatch 301 ^/[Bb][Ll][Oo][Gg](?<!blog)(/.*)?$ /blog$1
        

        更多选项,full .htaccess generators 可用。

        或者您可以使用ModRewrite-based rules 以获得最大的灵活性,但这可能有点矫枉过正。

        【讨论】:

        • 您的第二个示例也将在任何位置匹配/blog
        • 非常正确 - 我急于点击添加答案太快了。感谢您指出!正则表达式现已修复。
        • 是的,这个确实好得多,尽管总是有一句名言:“有些人在遇到问题时会想“我知道,我会使用正则表达式。”现在他们有两个问题。 "
        猜你喜欢
        • 2011-01-03
        • 2012-03-10
        • 2021-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多