2017-05-19 92 views
3

我想重定向一個包含符號和數字的字符,將字符重定向到其他某個URL,最後包含%00的URL需要重定向到另一個URL。無法重定向的URL包含%00

實施例:

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

%00未被重定向網址接受,請幫我解決。

回答

0

你如何處理這個問題真的取決於你指的是什麼其他「符號和數字」以及這些URL在哪裏出現。

由於沒有抗%-decoded URL路徑的RewriteRule模式比賽和%00NULL然後趕上,你可以對THE_REQUEST嘗試匹配其中包含的原料第一行中的URL路徑,%00該請求(不是%解碼)。

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

例如,嘗試接近你的根.htaccess文件的頂部如下:

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

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

如果您只是想重定向/asdnsadnas,並且忽略該URL路徑後面的所有內容,那麼您不需要明確檢查%00,因此您可以刪除RewriteCond指令。


www.example.com.nz/XYZABC%00需要重定向到www.example.com.nz/insurance-hub-page/xsserror/ XYZABC - 任何字母或符號等,但我需要在最後%00需要重定向到另一個網址的任何URL。

(我假設空間目標URL只是筆誤?)

在這種情況下,你不一定需要匹配%00(「字符」,你不希望) 。只要具體說明你想匹配的字符(這可能是一個較小的子集)。

例如,以下將重定向/XYZABC/insurance-hub-page/xsserror/XYZABC。尾隨%00被忽略。

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

...但我需要的任何URL末%00需要重定向到另一個網址。

不確定你的意思?

如果URL包含任何特殊charcters或符號等需要重定向到另一個網址範例:www.example.com/%28dsajkd%20nkasd%20daskdasj%00

你可以只檢查是否請求的URL中包含任何%編碼的字符,這似乎適合你的例子:

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

嗨, www.example.com.nz/XYZABC%00需要重定向到 www.example.com.nz/insurance-hu b-page/xsserror/ XYZABC - 任何字母或符號等,但我需要任何URL在最後%00需要重定向到另一個URL。 我希望你現在明白了..謝謝 –

+0

是,任何規則,如果URL包含任何特殊charcters或符號等需要重定向到另一個網址 例www.example.com/%28dsajkd%20nkasd%20daskdasj%00 –

+0

沒有,我需要重定向,如果任何人嘗試欺騙網址,如在網址中添加符號特殊字符,需要重定向到其他網址 –