2010-10-22 9 views
3

Si le signe de pourcentage est à l'intérieur de l'URL, renvoie une demande incorrecte (erreur 400) au navigateur. J'ai un nom de fichier qui a le signe pour cent (%), réside au serveur.htaccess pour échapper% (%) à partir de l'URL

originale Nom du fichier: 204153_20090605_Aluminiumacetotartraat_DCB_oordruppels_1,2% .pdf

URL dans le navigateur après avoir cliqué sur le lien de téléchargement:

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

Cela renvoie 400 erreur avec une mauvaise demande. J'utilise Kohana 3.

existant contenu du fichier .htaccess sont les suivantes:

 
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

Je préférerais essayer de modifier le nom du fichier et supprimer ce '%' et ',' – Geo

Répondre

1

Essayez le B flag pour assurer la %25, à % par séquence d'échappement mod_rewrite, est ré-échappé à nouveau à %25 lors réinséré dans le chemin cible.

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

Il renvoie une erreur de serveur, Erreur 500 après l'ajout de B –

+1

Vous avez oublié la virgule '[PT, B]'. – Gumbo

+0

Merci @Gumbo Erreur disparue, mais il a renvoyé erreur 500 car il ne pouvait pas résoudre% 25 à%. Dans le journal d'accès j'ai obtenu --- 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 " –