【问题标题】:.htaccess 301 redirect path and all child-paths.htaccess 301 重定向路径和所有子路径
【发布时间】:2011-05-10 01:23:18
【问题描述】:

我想访问例如www.thisdomain.com/docs/path1/path2 重定向到 www.thatdomain.com/path1/path2

(请注意,文档不是新路径的一部分)

我在 www.thisdomain.com 上有以下内容:

RewriteEngine on

RewriteRule ^docs/* http://www.domain.com/ [R=301,L]    

如果我访问 www.thisdomain.com/docs,它会指向 www.thatdomain.com,但如果我访问像 www.thisdomain.com/docs/path1/path2 这样的子路径,它会失败。重定向是否可以根据需要拦截子路径访问和重定向?如果有,有什么指点?

谢谢。

【问题讨论】:

    标签: .htaccess redirect


    【解决方案1】:

    对于正则表达式,* 表示任意数量的前一个原子,它将匹配 /docs 和 /docs/。试试这个:

    RewriteEngine on
    RewriteRule ^docs$ http://www.domain.com/ [R=301,L,QSA]
    RewriteRule ^docs/(.*) http://www.domain.com/$1 [R=301,L,QSA]
    

    QSA 是查询字符串追加,所以/docs/foo?bar=baz 不会丢失?bar=baz。)

    【讨论】:

      【解决方案2】:

      根据the first Google result 的“使用 htaccess 重定向将旧域重定向到新域”部分,我发现搜索“htaccess 重定向”(不带双引号),这段代码就足够了:

      Options +FollowSymLinks
      RewriteEngine on
      RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
      

      根据他们对该技术的描述,它将按照您的意图递归地重定向 .htaccess 文件所在的目录(包括任何子路径)。当然,要使重写指令起作用,需要存在 mod_rewrite。

      【讨论】:

        猜你喜欢
        • 2020-10-01
        • 2014-06-22
        • 1970-01-01
        • 2014-06-23
        • 2020-07-10
        • 1970-01-01
        • 2015-07-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多