我正在尝试重定向网址,如:
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]
尝试在网址周围添加引号:
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.
非常感谢任何帮助。
答案 0 :(得分:1)
你有2个选项来处理这样的网址。
<强> 1。匹配编码的网址(正如您所尝试的那样):
RewriteRule ^directory/p>\s<p>fashion/tshirts /directory [R,L,NC]
或引用:
RewriteRule "^directory/p> <p>fashion/tshirts" /directory [R,L,NC]
唯一的区别是您应该使用\s
或" "
来匹配空格。
<强> 2。使用十六进制代码匹配原始网址(更通用的解决方案):
RewriteRule ^directory/p\x3E\x20\x3Cp\x3Efashion/tshirts /dir [R,L,NC]
如您所见,您需要使用\x3E
来匹配3E
。