使用带有范围的htaccess正则表达重定向

时间:2015-09-15 19:18:13

标签: regex .htaccess redirect

这是我的.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

1 个答案:

答案 0 :(得分:0)

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

以下是你如何匹配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(在您的后端语言,控制器等),然后将它们重定向回原始域。或者弄清楚如果你做了我认为你正在做的事情,如何将旧的新闻迁移到另一个域。