【问题标题】:.htaccess 301 redirect all directories to parent.htaccess 301 将所有目录重定向到父目录
【发布时间】:2014-07-03 03:59:48
【问题描述】:

在 WordPress 迁移后发生了一个奇怪的问题。

设置新域后,我使用了:

RewriteRule ^blog/(.*) http://www.newdomain.com/blog/$1 [R=301,L]

将所有博客文章重定向到新域。这很完美。

我现在找到了一些网址,例如

http://www.olddomain.com/blog/directory/file/ 我想发送给http://www.newdomain.com/blog/directory/

目录是变量,文件是变量。

是否可以创建一个 htaccess 来保留我原来的规则,但也可以创建另一个规则来处理文件重定向。

【问题讨论】:

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


    【解决方案1】:

    这应该可以工作

    RewriteRule ^blog/(.*)/(.*)/? http://www.newdomain.com/blog/$1/ [R=301,L]
    RewriteRule ^blog/(.*) http://www.newdomain.com/blog/$1 [R=301,L]
    

    它将保持你原来的规则,并将http://www.olddomain.com/blog/directory/file/重写为http://www.newdomain.com/blog/directory/

    /? 表示最后一个/ 是可选的,即它将http://www.olddomain.com/blog/directory/file/http://www.olddomain.com/blog/directory/file 重定向到http://www.newdomain.com/blog/directory/

    【讨论】:

    • 不,您将不得不将选择性较高的匹配放在选择性较低的匹配之前
    • $1 不只是复​​制它找到的东西吗?例如 RewriteRule ^blog/(.*)/(.*)/? newdomain.com/blog [R=301,L] 效果很好,只去博客,但我更喜欢它去父目录。当我保留 $1 时,它只是重定向与另一行完全相同的重定向。
    猜你喜欢
    • 2021-04-04
    • 1970-01-01
    • 2020-08-23
    • 2014-02-21
    • 2015-10-23
    • 2014-03-22
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多