2010-10-22 58 views
3

URL內有百分號,向瀏覽器返回錯誤的請求(錯誤400)。我有一個具有百分號(%)符號的文件名,駐留在服務器上。htaccess從URL中跳出百分比(%)

原文件名: 204153_20090605_Aluminiumacetotartraat_DCB_oordruppels_1,2%的.pdf

地址在瀏覽器中點擊下載鏈接後:

http://www.example.com/204153_20090605_Aluminiumacetotartraat_DCB_oordruppels_1%2C2%25.pdf

這將返回400錯誤與錯誤的請求。我使用的Kohana 3

現有的.htaccess文件內容如下:

 
RewriteEngine On 

RewriteBase/

<Files .*> 
Order Deny,Allow 
Deny From All 
</Files> 

RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule .* index.php/$0 [PT] 
+0

我寧願嘗試修改文件名和刪除'%'和',' – Geo 2012-12-29 21:48:37

回答

1

嘗試B flag,確保%25,轉義到%由mod_rewrite的,插回時重新逃回%25進入目標路徑。

RewriteRule .* index.php/$0 [PTB] 
+0

它返回服務器錯誤,錯誤500添加B – 2010-10-22 12:54:29

+1

後,您在'忘了逗號[PT,B]'。 – Gumbo 2010-10-22 12:58:35

+0

謝謝@Gumbo錯誤消失了,但它返回了500錯誤,因爲它無法將%25解析爲%。在訪問日誌中,我得到了--- 127.0.0.1 - - [22/Oct/2010:18:29:42 +0530]「GET /204153_20090605_Aluminiumacetotartraat_DCB_oordruppels_1,2%25.pdf HTTP/1.1」500 22514「 - 」「Mozilla/5.0(Windows; U; Windows NT 5.1; en-US; rv:1.9.2.11)Gecko/20101012 Firefox/3.6.11「 – 2010-10-22 13:02:12