Je n'ai jamais utilisé mod_rewrite
auparavant, donc je me bats avec la mise en place de règles appropriées pour mon cas d'utilisation.mod_rewrite si le fichier dans le sous-répertoire n'existe pas
J'ai une URL qui ressemble à ce que: domain.com/pict/123456
structure de répertoire est comme ceci:
/pict/ |-- autogenerated/ |-- 12345.png |-- 87654.png |-- gen.php |-- .htaccess
et ce que je voudrais réaliser est:
Si 12345.png
n'existe pas dans autogenerated
, réécrire l'URL à gen.php?id=12345
d'autre servir le autogenerated/12345.png
fichier
J'ai essayé différentes solutions trouvées sur Internet (ainsi que la plupart des réponses de Stackoverflow - en vain).
mon fichier .htaccess
ressemble à ceci:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond autogenerated/%{REQUEST_FILENAME}.png -f
RewriteRule ^(.+)$ autogenerated/$1.png [L]
RewriteRule ^(.*)$ generate.php?id=$1 [QSA,L]
</IfModule>
J'ai aussi essayé de changer la RewriteCond
comme ceci:
RewriteCond autogenerated/$1.png -f
RewriteCond autogenerated/%{REQUEST_URI}.png -f
RewriteCond %{DOCUMENT_ROOT}/autogenerated/%{REQUEST_FILENAME}.png -f
RewriteCond %{DOCUMENT_ROOT}/autogenerated/$1.png -f
RewriteCond %{DOCUMENT_ROOT}/pict/autogenerated/%{REQUEST_FILENAME}.png -f
RewriteCond %{DOCUMENT_ROOT}/pict/autogenerated/$1.png -f
et peu importe ce que je fais, d'abord RewriteRule déclenche jamais, et tout est envoyé à l'gen.php
suis-je manque quelque chose ici?
Les deux REQUEST_FILENAME et REQUEST_URI contiennent les informations de chemin. // Où se trouve votre fichier htaccess, dans la racine ou dans le dossier pict? – CBroe
oh. Je pensais que REQUEST_FILENAME ne contient que ce qui est après "/" mon fichier 'htaccess' est dans le dossier" pict " – Tomaski