htaccess从URL中跳出百分比(%)
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]
尝试B flag,确保%25
,转义到%
由mod_rewrite的,插回时重新逃回%25
进入目标路径。
RewriteRule .* index.php/$0 [PTB]
它返回服务器错误,错误500添加B – 2010-10-22 12:54:29
后,您在'忘了逗号[PT,B]'。 – Gumbo 2010-10-22 12:58:35
谢谢@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
我宁愿尝试修改文件名和删除'%'和',' – Geo 2012-12-29 21:48:37