我有这样的重定向
Redirect 301 /dir/dir/843-987 /new_page
但是要重定向到“ / new_page”,它会执行“ / new_page / 843-987” 为什么?以及如何避免这种情况?
答案 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]
从843
到987
范围内崩溃:
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])