Bonjour

j'ai besoin d'un peu d'aide svp, pour une ré-écriture d'URL que je n'arrive pas à faire fonctionner:

Par exemple, au lieu d'avoir des URL comme ceci:
www.site.com/article_post?id=931&url=article


Je veut des URL comme ceci:
www.site.com/931-article


J'ai essayé cette de mettre règle dans mon .htacces :
RewriteRule ^([0-9]+)-([a-z0-9\-]+)$ article_post?id=$1&url=$2 [L]


Mais je n'arrive pas à la faire fonctionner... ça me renvoi cette erreur :

The requested URL /CMS-w/page_post was not found on this server.

Comment faut-il faire SVP ?

Merci d'avance.
Salut,

As-tu testé avec un "/" avant ta destination ?

RewriteRule ^([0-9]+)-([a-z0-9\-]+)$ /article_post?id=$1&url=$2 [L]
ok merci :

AddDefaultCharset UTF-8

# => désactiver le listing des dossier "index of" sans index.php
Options -Indexes


# => 1- autorise le serveur à suivre les liens symboliques dans ce répertoire - pour url rewitting
# => 2- activation de l'url rewitting
Options +FollowSymLinks -MultiViews
RewriteEngine on


# masque les extentions .php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^[^.]+$ $0.php [L]
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule (.+)\.php$ $1 [L,R=permanent]


# => re-écritures d'url pour les article en GET
RewriteRule ^([a-z0-9\-]+)$ page_post?url=$1 [L]


# => re-écritures d'url pour les pages en GET
# MON PROBLEME EST ICI
RewriteRule ^([0-9]+)-([a-z0-9\-]+)$ article_post?id=$1&url=$2 [L]



# => erreur 404 site - à mettre ejn chemin absolue lors de la mise en ligne du site
#    ErrorDocument 404  http://localhost/CMS-w/erreur
 
Ah oui, en fait ta première règlevient court-circuiter ta seconde...
"931-article" correspond bien à à ta première règle donc la redirection se fait vers page_post et non article_post.
Enlève le drapeau [L] à ta première condition et teste (ou bien inverse les 2).
Idéalement il faut mettre le règle la plus contraignante en premier.
Si ça fonctionne, le souci vient de là et du coup il faudrait revoir la regex.
Pour distinguer les 2 types (page ou post) il faudrait que l'un des 2 ait un marquer d'identification. Par exemple tes pages ne commence jamais par 2 chiffres (du coup on peut l'intégrer dans la regex).
Ok merci.
Du cou je vais utiliser ces règles:
# => re-écritures d'url pour les pages en GET
RewriteRule ^([a-z0-9\-]+)$ post_page?url=$1 [L]

# => re-écritures d'url pour les articles en GET
RewriteRule ^article/([a-z0-9\-]+)$ post_article?url=$1 [L]


Et en PHP, j'interdit les admin de mettre les slash "/" dans les slugs, comme ça, il ne devrai jamais y avoir de conflit entre ces 2 règles de ré-écriture. Merci