【问题标题】:Using htaccess regex with range to redirect使用带范围的 htaccess 正则表达式进行重定向
【发布时间】:2015-09-15 19:18:13
【问题描述】:

这是我的 .htaccess 正则表达式:

RewriteRule ^index.php/news/([0-9][0-9][0-9])?/16$ /index.php/news/$1/16 [L,R=301]

这行得通。但是,我需要 0-1879 的范围来重定向到 /index.php/news/$1/16,超过 1879 的范围才能重定向到 http://otherdomain/index.php/news/$1/16

【问题讨论】:

    标签: regex .htaccess redirect


    【解决方案1】:

    你不应该这样做,但是......

    以下是匹配 0-1879 的方法:

    [0-9]|[1-9][0-9]{1,2}|1[0-7][0-9]{2}|18[0-6][0-9]|187[0-9]
    

    这是匹配 1880-infinity 的方法

    18[8-9][0-9]|19[0-9]{2}|[2-9][0-9]{3}|[1-9][0-9]{4}
    

    注意:通过交替,您需要将它们包装在一个组 () 中以正确嵌套逻辑。


    我建议...

    只需匹配 0+ 个数字并重定向到另一个域。如果数字是 0-1879(在您的后端语言、控制器等中),则将它们重定向回原始域。或者弄清楚如何将旧新闻迁移到另一个域,如果你正在做我认为你正在做的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-17
      相关资源
      最近更新 更多