Forcer l'utilisation de l'urlrewriting même si le dossier existe

  • Auteur de la discussion Auteur de la discussion neo765
  • Date de début Date de début
WRInaute discret
Salut,

J'aimerai utiliser un script php pour charger mes images appeler depuis une url.

Code:
RewriteEngine on
RewriteRule ^images/(.*)$ /script.php?url=$1

Seulement il ne me prend pas en compte mon url parce que le dossier images/ existe sur le serveur.

Il faudrait que la RewriteRule ait la priorité mais je vois pas comment faire.

Merci
 
WRInaute discret
Salut,

Je défini mes règles dans mon virtual host :

Code:
<Directory /www/htdocs/mywebsite/images/>

        RewriteEngine on
        RewriteRule ^images/(.*)$ /protectimg.php?url=$1 [PT]

</Directory>

Si j'appel mywebsite.com/images/ ou mywebsite.com/images/images/ l'url rewriting n'est pas prise en compte (j'ai du Forbidden ou du Not Found).

Par contre l'url rewriting était bien prise en compte pour la condition suivante (à la racine) :

Code:
<Directory /www/htdocs/mywebsite/>

        RewriteEngine on
        RewriteRule ^images2/(.*)$ /protectimg.php?url=$1 [PT]

</Directory>

si j'appel mywebsite.com/images2/ il va bien me chercher protectimg.php. Mais je voudrais qu'il me fasse ça pour mywebsite.com/images/ même si le dossier image/ existe.
 
WRInaute accro
neo765 a dit:
Il faudrait que la RewriteRule ait la priorité mais je vois pas comment faire.
Code:
	RewriteCond %{REQUEST_URI}  ^(.*)images(.*)
	RewriteRule ....
essaie avec une condition ...
 
WRInaute discret
Non plus, mon images est toujours :(

Et si je comprends bien la condition, n'importe quelle requête qui contient le mot "images" est redirigé vers le script ?
 
WRInaute accro
oui mais tu peux affiner ... j'utilise ça a la racine perso pas dans le dossier images.
 
WRInaute discret
Salut,

J'ai remis en place la règle suivante :

Code:
RewriteCond %{REQUEST_URI}  ^(.*)images(.*)
RewriteRule ^(.*)$ /script.php?url=$1

Elle fonctionne uniquement si je n'utilise pas le dossier images/ dans mon url, avec images2/ ça fonctionne correctement (mon script.php est appelé)
 
WRInaute occasionnel
Tu peux donner un exemple de lien que tu utilises, je ne comprends pas trop ce que tu veux faire?
 
WRInaute accro
neo765 a dit:
Salut,
Seulement il ne me prend pas en compte mon url parce que le dossier images/ existe sur le serveur.

Il faudrait que la RewriteRule ait la priorité mais je vois pas comment faire.
Est-ce que tu n'aurais pas un fichier .htaccess qui dit qu'il ne faut pas faire de rewriting quand le dossier existe? Je pense que, s'il y a un .htaccess, ses règles sont appliquées d'abord.

Jean-Luc
 
WRInaute discret
Effectivement il y a un .htaccess dans le dossier images/ :? :

Code:
# Protect against bug 28235
<IfModule rewrite_module>
        RewriteEngine On
        RewriteCond %{QUERY_STRING} \.[^\\/:*?\x22<>|%]+(#|\?|$) [nocase]
        RewriteRule . - [forbidden]
</IfModule>
 
WRInaute accro
Peux-tu faire un essai en recopiant la ligne RewriteRule de ton virtual host dans le .htaccess?

Jean-Luc
 
Discussions similaires
Haut