htaccess 从 URL 转义百分比 (%)

Asi*_*lla 5 .htaccess kohana-3

在 URL 中有百分号,会向浏览器返回错误的请求(错误 400)。我有一个带有百分比 ( %) 符号的文件名,位于服务器上。

原文件名:

204153_20090605_Aluminiumacetotartraat_DCB_oordruppels_1,2%.pdf
Run Code Online (Sandbox Code Playgroud)

点击下载链接后浏览器中的网址:

http://www.example.com/204153_20090605_Aluminiumacetotartraat_DCB_oordruppels_1%2C2%25.pdf
Run Code Online (Sandbox Code Playgroud)

这将返回带有“错误请求”的 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] 
Run Code Online (Sandbox Code Playgroud)

bob*_*nce 0

尝试使用B 标志以确保%25未通过%mod_rewrite 转义的 被重新转义回%25插入目标路径时。

RewriteRule .* index.php/$0 [PTB]
Run Code Online (Sandbox Code Playgroud)

  • 您忘记了“[PT,B]”中的逗号。 (2认同)