【问题标题】:301 htaccess redirect with directory wildcard带有目录通配符的 301 htaccess 重定向
【发布时间】:2014-11-14 05:57:17
【问题描述】:

有没有更有效的方法来编写这些重定向?

RewriteRule ^directory/subdir/1990/010190/(.*)$ directory/editorials/$1 [L,R=301]
RewriteRule ^directory/subdir/1990/020190/(.*)$ directory/editorials/$1 [L,R=301]
RewriteRule ^directory/subdir/1990/030190/(.*)$ directory/editorials/$1 [L,R=301]
RewriteRule ^directory/subdir/1990/040190/(.*)$ directory/editorials/$1 [L,R=301]
RewriteRule ^directory/subdir/1990/050190/(.*)$ directory/editorials/$1 [L,R=301]
RewriteRule ^directory/subdir/1990/060190/(.*)$ directory/editorials/$1 [L,R=301]

看来/1990/ 的子目录需要一个通配符

能够做到这一点将大大减少我的重定向数量,使其更易于管理。任何帮助或提示表示赞赏!

【问题讨论】:

    标签: regex .htaccess mod-rewrite redirect http-status-code-301


    【解决方案1】:

    您可以对所有这些规则使用一个规则:

    RewriteRule ^directory/subdir/1990/0[1-6]0190/(.*)$ directory/editorials/$1 [L,R=301]
    

    【讨论】:

    • 太棒了!你会得到复选标记,但是如果我有目录来代替 1990,比如 1991、1992、1993 等。重定向规则会删除所有的 'subdir/1991/010190/',所以可以简单地做到这一点也一样?
    • 在聊天的情况下,我们可以尝试使用正则表达式替换,如(1990/010190|1991/020190|1992/020190)
    猜你喜欢
    • 2015-11-04
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 2013-09-12
    相关资源
    最近更新 更多