Bonjour,
Sur mon site j'ai quelques pages principales (une dizaine) qui correspondent à des fichiers PHP sur le serveur.
J'ai mis en place l'URL rewriting pour ces quelques pages, de manière à ce qu'on y accède via des URL de ce type :
http://domaine/voiture
http://domaine/machin-truc
Voici la structure des fichiers sur le serveur :
- .htaccess
- wp-index.php
- index.php
- pages
- voiture.php
- camion.php
- images
- photo.jpg
- schema.png
Et le contenu de mon .htaccess :
Maintenant, je voudrais y ajouter un catch all, c'est à dire que toutes les URL qui correspondent à mon pattern [a-zA-Z0-9_-]+ vont être réécrites vers wp-index.php si et seulement si le fichier PHP correspondant à la requête n'existe pas dans /pages/.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 RewriteEngine on RewriteBase / # Rewrite des URL style /voiture-rapide vers le fichier PHP dédié RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-zA-Z0-9_-]+)$ pages/$1.php [L]
Au final, ça devrait faire ça :
Pour ça j'ai ajouté une nouvelle règle à la fin de mon .htaccess :
Ça fonctionne mais j'ai un doute, parfois mon navigateur (Firefox) indique un message d'erreur style redirections infinies...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 # Rewrite du reste des URL vers wp-index.php (catch all) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wp-index.php [L]
Je souhaiterais avoir votre avis, est-ce qu'il y a une meilleure solution ?
Merci
Partager