无法redirectURL包含%00

我想redirect一个包含符号和数字的URL,字符到其他一些URL,最后包含%00 URL需要redirect到另一个URL。

例:

www.example.com/asdnsadnas%00redirect到另一个URL

%00在redirecturl中未被接受,请帮助我。

你如何处理这真的取决于你指的是什么其他的“符号和数字”以及这些URL在哪里出现。

由于RewriteRule 模式与%-decoded URL路径匹配,并且%00NULL,因此要在URL路径中捕获%00 ,您可以尝试与包含请求的原始第一行(不是% – )的THE_REQUEST解码)。

www.example.com/asdnsadnas%00重定向到另一个URL

例如,请尝试在根.htaccess文件的顶部附近使用以下内容:

 RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /asdnsadnas%00\ HTTP RewriteRule ^asdnsadnas /another-url [R,L] 

RewriteRule 模式只检查URL的第一部分,直到%00

如果你只是想重定向/asdnsadnas并简单地忽略这个URL路径/asdnsadnas所有内容,那么你不需要明确检查%00 ,所以你可以删除RewriteCond指令。


www.example.com.nz/XYZABC%00需要重定向到www.example.com.nz/insurance-hub-page/xsserror/ XYZABC – 任何字母或符号等,但我需要任何URL %00末尾需要重定向到另一个URL。

(我假设目标网址中的空格只是错字?)

在这种情况下,你不一定需要匹配%00 (你不想要的“字符”)。 只要具体说明你想匹配的字符(这可能是一个较小的子集)。

例如,以下内容会将/XYZABC重定向到/insurance-hub-page/xsserror/XYZABC 。 尾随的%00被忽略。

 RewriteRule ^(\w+) /insurance-hub-page/xsserror/$1 [R,L] 

…但是我需要在%00结尾的任何网址都需要重定向到另一个网址。

不确定你的意思?

如果URL包含任何特殊的字符或符号等需要重定向到另一个URL例如: www.example.com/%28dsajkd%20nkasd%20daskdasj%00

你可以检查一下,看看请求的URL是否包含任何%编码的字符,这似乎适合你的例子:

 RewriteCond %{THE_REQUEST} % RewriteRule ^ /another-url [R,L]