Bonjour,
J'ai un soucis avec un CMS que je suis entrain de faire, il y a un système de news et l'url des news est sous la forme
forgecms.dev/news?t=bienvenue-sur-forgecms
Et je voudrai que se soit sous la forme
forgecms.dev/news/bienvenue-sur-forgecms
J'ai essayer ce code dans le .htaccess
RewriteRule ^news/(.*)$ news?t=$1 [L]
Mais je n'y arrive pas, si vous avez une solution a me proposer,
Merci d'avance,
Cordialement.
C'est normal tu essai d'accèder au fichier news (sans le .php)
essai ceci :
RewriteRule ^news/(.*)$ news.php?t=$1 [L]
A placer avant ta ligne supprimant les .php car ton flag [L] indique que le moteur d'URL rewriting doit arrêter sa recherche ici si l'URL correspond à l'expression régulière.
Oui enfin c'est pas top non plus: une url du type http://domaine.fr/newstiti matcherait comme http://domaine.fr/news/titi ...
Au pire deux rules du genre:
RewriteRule ^news/(.*)$ news.php?t=$1 [L]
RewriteRule ^news$ news.php?t= [L]
pourrait marcher et ne matcherait pas newstiti. Attention: l'ordre des règles est a respecter !
hé hé ... qui c'est le meilleur ?
RewriteRule ^news$|news/$|news/(.*)$ news.php?t=$1 [QSA,L]
:P
Le début du code est fait pour enlever les .php dans les URL et aussi la ligne pour l'erreur 404.
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteRule ^news/(.*)$ news?t=$1 [L]
ErrorDocument 404 /404.php
Merci Couss pour ta réponce qui fonctionne mais quand je veut mettre l'url http://domaine.fr/news j'ai une erreur 404, pour que la page news marche il faut que je fasse http://domaine.fr/news/
Merci
A toutes fins utiles, ce genre de petit outil est très pratique pour les tests: http://martinmelin.se/rewrite-rule-tester/
@ Vallyan : ce que l'on oublie souvent c'est que l'url rewriting est juste une utilisation des regex, il suffit de s'avoir ecrire la regex pour que le fonctionnement soit operationnel sur l'url réécrite ;)