Rewrite différent sur deux points d'entrées

Nouveau WRInaute
Bonjour tout le monde,

J'ai des difficultés à faire fonctionner mon urlrewrite dans mon .htaccess

J'ai deux points d'entrées : index.php et video.php
Sur le premier j'utilise une liste blanche et je retire index.php avec le .htaccess :

Code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

Ca fonctionne très bien.

Seulement pour l'amélioration de mon site j'ai ajouté un autre point d'entrée qui est video.php
Dans celui-ci je génère une liste blanche dans une base.
Je voudrais renommer video.php/url-de-ma-video en video/url-de-ma-video

Pour cela j'utilise le code suivant (que j'ai placé à la suite du premier) :

Code:
RewriteRule ^/video/(.*)$ /video.php?/$1 [L]

Ca ne fonctionne pas et je ne sais pas pourquoi.
Est-ce que quelqu'un aurait une idée de ce que j'ai mal fait ?

Par avance merci.
 
WRInaute accro
jejemo a dit:
j'ai ajouté un autre point d'entrée qui est video.php
Tu l'a rajouté où dans le htaccess ? le fichier global ressemble a quoi avec toutes les règles de réécriture.
 
Nouveau WRInaute
zeb a dit:
jejemo a dit:
j'ai ajouté un autre point d'entrée qui est video.php
Tu l'a rajouté où dans le htaccess ? le fichier global ressemble a quoi avec toutes les règles de réécriture.

index.php et video.php sont à la racine.
Mon .htaccess est celui que préconise Corinne Schillinger https://github.com/inseo/bpi-htaccess/blob/master/.htaccess
auquel j'ai ajouté

Code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
#RewriteRule ^/video/(.*)$ /video.php?/$1 [L]
 
WRInaute accro
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Si je ne me trompe pas (c'est possible :D ) ces conditions font que la règle qui les suit sera appliqué si il n'y a pas de fichier physique qui correspond. Bref tout va être traité avec la règle qui suit ce qui fait que ta règle sur les vidéo ne sera jamais traitée.
 
Nouveau WRInaute
zeb a dit:
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Si je ne me trompe pas (c'est possible :D ) ces conditions font que la règle qui les suit sera appliqué si il n'y a pas de fichier physique qui correspond. Bref tout va être traité avec la règle qui suit ce qui fait que ta règle sur les vidéo ne sera jamais traitée.

Ok donc si je comprends bien, il faudrait que j'ajoute à nouveaux ces deux conditions avant la ligne video.php pour l'appliquer à celle-ci aussi ?
 
WRInaute accro
Non car de toute façon la première règle qui suit ces deux conditions sera appliqué quelle qu'elle soit et la suite jamais.
En revanche il faudrait traiter le cas des vidéo avant en mettant une condition qui porte que sur les vidéo. un truc genre (pas testé) :

Code:
RewriteEngine On

# on gère les trucs liés a la vidéo
RewriteCond %{REQUEST_URI}  ^(.*)video/(.*)
RewriteRule (.*)video/(.*)$ /video.php?/$2 [L]

# tout le reste est géré par index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
 
Nouveau WRInaute
Ca fonctionne parfaitement :)

Un grand merci zeb ! Vraiment, ça m'aide beaucoup.

Merci encore et bonne soirée. :)
 
Discussions similaires
Haut