htaccess для экранирования процентов (%) от URL - PullRequest
3 голосов
/ 22 октября 2010

Наличие знака процента внутри URL возвращает браузеру неверный запрос (ошибка 400). У меня есть имя файла со знаком процента (%), находится на сервере.

Исходное имя файла: % 204153_20090605_Aluminiumacetotartraat_DCB_oordruppels_1,2 .pdf

URL в браузере после нажатия на ссылку для скачивания:

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] 

1 Ответ

1 голос
/ 22 октября 2010

Попробуйте флаг B , чтобы убедиться, что %25, не экранированный до % с помощью mod_rewrite, повторно экранируется обратно в %25 при вставке обратно в целевой путь.

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