2013-12-11 60 views
1

我有一個入站鏈接,位於.html擴展名後有%00的網站。使用%符號重定向url使用htaccess中的重寫

例子:/directory/example.html%00由於%符號

我想使用這個htaccess的URL重定向到

/directory/example.html

我有這個重定向的問題。

在htaccess中,由於%符號,這不起作用。

RewriteRule ^directory/example\.html%00$ /directory/example\.html [R=301,L] 

我試着用\ first轉義%符號。

我已經在網上搜索了關於這個,我仍然在掙扎。也許一個重寫條件必須先執行?由於%00是一個特殊字符(零十六進制代碼),apache沒有機會重寫它?

回答

1

this questionRFC 3986可以看出'%'字符在URL中無效,除非它出現在URL的查詢字符串中(在'?'分隔符後面)。您的RewriteRule將是正確的,但由於該URL無效,請求永遠不會到達您的網站。如果「%00」實際上不是一個文字字符串,而是[NUL]字符(因爲這在URL中也是無效的),情況也是如此。