使用网址中的数字重定向

时间:2019-07-08 14:29:31

标签: .htaccess

我有这样的重定向

Redirect 301 /dir/dir/843-987 /new_page

但是要重定向到“ / new_page”,它会执行“ / new_page / 843-987” 为什么?以及如何避免这种情况?

2 个答案:

答案 0 :(得分:1)

Redirect指令的工作方式就是将当前URI附加到目标。

您应该使用更强大的mod_rewrite规则来进行更好的控制:

RewriteEngine On

RewriteRule ^dir/dir/843-987/?$ /new_page [L,NC,R=301]

确保使用新的浏览器测试更改或完全清除缓存。

答案 1 :(得分:1)

如果843-987是静态术语,则可以使用以下代码:

RewriteRule ^dir/dir/843-987/?$ /new_page [L,NC,R=301]

如果843-987是一个数字范围,则可以使用以下代码:

RewriteRule ^dir/dir/(84[3-9]|8[5-9][0-9]|9[0-7][0-9]|98[0-7])/?$ /new_page [L,NC,R=301]

843987范围内崩溃:

Parse Into Range:

843 - 849
850 - 899
900 - 979
980 - 987

Parse Into Block Regex:

84[3-9]
8[5-9][0-9]
9[0-7][0-9]
98[0-7]

Combining Into Regex Pattern:

(84[3-9]|8[5-9][0-9]|9[0-7][0-9]|98[0-7])