Php et Réecriture d'url

Par Feelsonix, il y a 9 ans


Bonjour,

J'ai développer un forum en PHP en me basant sur des tutoriels.
J'utilise url encode pour les urls suivantes:
forum_topics.php?categorie=forum&souscategorie=information-news-forum
ainsi que topic.php?titre=bienvenue-sur-forum&id=2

Vous allez donc me dire, mais c'est simple, le soucis et que je n'y arrive pas je voudrais pour le premeir lien comme url:

www.monsite.com/forum/information-news-forum

Pour les topics:

www.monsite.com/topic-bienvenue-sur-forum-2

Voici mon htaccess:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^([a-z]+)/([a-z]+)$ /forum_topics.php?categorie=$1&souscategorie=$2 [L

Cela ne fonctionne pas, j'obtien un 404 not found, je pense pourtant que ma syntaxe est correct ?

Merci.

3 réponses

neecride, il y a 9 ans

Tu a des tiret dans tes url il faut dire a htaccess que tu accepte les tiret [a-z\-] je te rassure moi aussi ce n'est pas ma tasse de thé les rewrite d'ailleur tu na pas besoin du / devant ton url

ça devrais faire un truc du genre RewriteRule ^([a-zA-Z\-]+)/([a-zA-Z\-]+)$ index.php?page=$1&slug=$2 [NC,L]

tleb, il y a 9 ans

Salut,

Petit conseil : ajoute /? avant ton $. Le point d'intéroggation signifie que le / est optionel. Aussi, il existe des outils en ligne pour tester ses regexs (e.g regex101) et d'autres pour tester des .htaccess entier (e.g htaccess tester).

neecride, il y a 9 ans

J'en ai profité pour amélioré le mien donc si ça peut t'aidé

Merci a tleb pour ton astuce /?

#-------------------------------------------------- # Répertoire : www #-------------------------------------------------- # Le serveur doit suivre les liens symboliques : Options +FollowSymlinks AddDefaultCharset UTF-8 # Activation du module de réécriture d'URL : <IfModule mod_rewrite.c> RewriteEngine on </IfModule> #-------------------------------------------------- # Règles de réécriture d'URL : #-------------------------------------------------- RewriteBase / DirectoryIndex index.php?page=home RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f #------------------------------------------------- RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?page=$1 [NC,L] RewriteRule ^home/page/([0-9]+)/?$ index.php?page=home&pager=$1 [NC,L] RewriteRule ^([a-zA-Z\-]+)/([0-9]+)/?$ index.php?page=$1&id=$2 [NC,L] RewriteRule ^([a-zA-Z\-]+)/([a-zA-Z\-]+)/?$ index.php?page=$1&slug=$2 [NC,L] RewriteRule ^([a-zA-Z\-]+)/([0-9]+)/([a-zA-Z0-9\-]+)/?$ index.php?page=$1&id=$2&csrf=$3 [NC,L] RewriteRule ^([a-zA-Z\-]+)/([0-9]+)/([a-zA-Z0-9\-]+)/?$ index.php?page=$1&id=$2&token=$3 [NC,L] RewriteRule ^([a-zA-Z\-]+)/topic/([0-9]+)/page/([0-9]+)/?$ index.php?page=$1&id=$2&pager=$3 [NC,L] # cash image #RewriteRule ^images/(.*)\-([a-f0-9]+)\.(jpg|png)/?$ views/images/$1.$3 [QSA,NC,L] # cash css #RewriteRule ^css/(.*)\-([a-f0-9]+)\.css/?$ views/css/$1.css [QSA,NC,L] # cash JS #RewriteRule ^js/(.*)-([a-f0-9]+).js/?$ views/js/$1.js [QSA,NC,L] #--------------------------------------------------