0 votes

La règle Mod_Rewrite ne fonctionne pas sur le serveur de production

J'ai essayé sans succès de faire fonctionner sur mon serveur de production une règle qui fonctionne bien sur mon serveur WAMP sur ma machine locale :

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule \.exe /download/ [L]

Sur mon serveur local, il redirige toutes les demandes de téléchargement direct de fichiers vers /download/ mais sur le serveur de production, les fichiers sont simplement téléchargés, si vous supprimez la condition et tapez un nom de fichier inexistant, il redirige vers /download/ .

Une fois que je l'aurai fait fonctionner, je vais ajouter une condition supplémentaire : le référent doit être quelque chose comme /download/ok/ pour que le fichier soit téléchargé.

1voto

Sam Points 860

Essayez d'ajouter cette ligne par-dessus :

Options +FollowSymlinks

donc...

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule \.exe /download/ [L]

C'est un bon guide : http://corz.org/serv/tricks/htaccess2.php

0voto

Gumbo Points 279147

Essayez de trouver quelle valeur %{REQUEST_FILENAME} a :

RewriteCond %{QUERY_STRING} ^$
RewriteRule \.exe %{REQUEST_URI}?%{REQUEST_FILENAME} [R]

Vous devez peut-être composer vous-même le chemin d'accès correct au système de fichiers :

RewriteCond %{DOCUMENT_ROOT}$0 -f
RewriteRule .*\.exe.* /download/ [L]

0voto

evsmith Points 163

Le téléchargement doit provenir de la cache !

Je me sens vraiment stupide maintenant, j'ai passé d'innombrables heures sur ce sujet et tout ce temps c'était un problème de cache, j'ai effacé le cache de firefox et ça marche bien .

J'ai choisi :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{HTTP_COOKIE} !^.*download_key=abc123.*$
RewriteRule \.exe /download/ [R]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X