Apache重写规则,适用于包含%代码的URL



我正在尝试重定向一个url,如:

http://www.mywebsite.com/directory/p%3E%20%3Cp%3Efashion/tshirts
http://www.mywebsite.com/directory/p%3E%20somewhere/else

http://www.mywebsite.com/directory

但是,我如何告诉我的重写程序查找%代码?

我试着把它敲进去:

RewriteRule ^directory/p%3E%20%3Cp%3Efashion/tshirts http://www.mywebsite.com/directory [R,L,NE,NC]

尝试在URL周围添加引号:

RewriteRule ^"directory/p%3E%20%3Cp%3Efashion/tshirts" http://www.mywebsite.com/directory [R,L,NE,NC]

并尝试将未编码的版本进行测试:

RewriteRule ^directory/</p>%20<p>fashion/tshirts http://www.mywebsite.com/directory [R,L,NE,NC]

它们都没有重定向。我刚收到一个404的预期。

我们非常感谢任何帮助。

您有两个选项来处理这样的URL。

1.匹配编码的URL(正如您所尝试的):

RewriteRule ^directory/p>s<p>fashion/tshirts /directory [R,L,NC]

或带引号:

RewriteRule "^directory/p> <p>fashion/tshirts" /directory [R,L,NC]

唯一的区别是应该使用s" "来匹配空间。

2.使用十六进制代码匹配原始URL(更通用的解决方案):

RewriteRule ^directory/px3Ex20x3Cpx3Efashion/tshirts /dir [R,L,NC]

正如您所看到的,您需要使用x3E来匹配3E

最新更新