Bonjour,
Je vais essayer d'être simple et concis. Je découvre l'url-rewriting depuis hier matin. Et je me heurte déjà à mes premiers soucis.
Ce que je souhaite : faire correspondre l'adresse virtuelle
"http://www.example.com/nous-contacter/" à
"http://www.example.com/index.php?page=nous-contacter"
Le fonctionnement du site est simple : la page index fait un include ($_GET[page].'.php'). Le fichier en question se trouvant donc à la racine. Le tout étant un peu plus protégé que cela mais je simplifie.
Le problème est en soi très simple, l'appel de
"http://www.example.com/nous-contacter/" (le répertoire physique n'existe pas)
revient à appeler
"http://www.example.com/nous-contacter.php"
Autrement le htaccess semble bien fonctionner, j'ai essayé d'appeler
"http://www.example.com/plop/"
en modifiant mon fichier index.php pour faire l'équivalent d'un include ('extension_'.$_GET[page].'.php') et là le fichier extension_plop.php est bien inclus, preuve que le paramètre est bien passé dans l'url.
A coté de ça j'ai essayé de virer le .htaccess et d'appeler,
"http://www.example.com/nous-contacter/"
et je retombe bien sur
"http://www.example.com/nous-contacter.php"
Cela viendrait du serveur ? mais à moins d'avoir raté une étape, je croyais que le htaccess passait en premier, l'url devrait donc être réécrite...
La solution serait de renommer les fichiers mais cela ne saurait être qu'une solution de dernier recours.
Ci-dessous le code de mon htaccess :
(les fiches produits fonctionnent à priori correctement)
Je suis navré de vous présenter de manière aussi brouillon, mais si ce post est brouillon c'est que mes idées sont aussi peu claires que mon énoncé.
Merci d'avance à ceux qui pourront me répondre.
Cordialement,
Matthieu
Je vais essayer d'être simple et concis. Je découvre l'url-rewriting depuis hier matin. Et je me heurte déjà à mes premiers soucis.
Ce que je souhaite : faire correspondre l'adresse virtuelle
"http://www.example.com/nous-contacter/" à
"http://www.example.com/index.php?page=nous-contacter"
Le fonctionnement du site est simple : la page index fait un include ($_GET[page].'.php'). Le fichier en question se trouvant donc à la racine. Le tout étant un peu plus protégé que cela mais je simplifie.
Le problème est en soi très simple, l'appel de
"http://www.example.com/nous-contacter/" (le répertoire physique n'existe pas)
revient à appeler
"http://www.example.com/nous-contacter.php"
Autrement le htaccess semble bien fonctionner, j'ai essayé d'appeler
"http://www.example.com/plop/"
en modifiant mon fichier index.php pour faire l'équivalent d'un include ('extension_'.$_GET[page].'.php') et là le fichier extension_plop.php est bien inclus, preuve que le paramètre est bien passé dans l'url.
A coté de ça j'ai essayé de virer le .htaccess et d'appeler,
"http://www.example.com/nous-contacter/"
et je retombe bien sur
"http://www.example.com/nous-contacter.php"
Cela viendrait du serveur ? mais à moins d'avoir raté une étape, je croyais que le htaccess passait en premier, l'url devrait donc être réécrite...
La solution serait de renommer les fichiers mais cela ne saurait être qu'une solution de dernier recours.
Ci-dessous le code de mon htaccess :
Code:
# Erreur 404
ErrorDocument 404 /index.php
# URL Rewriting
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
# Cas des fiches produits
RewriteRule (liste-)([0-9]+)(/fiche-produit)(/?) /index.php?page=fiche-produit&id=$2&nav=rech [L]
RewriteRule ([0-9]+)(/fiche-produit)(/?) /index.php?page=fiche-produit&id=$1 [L]
# Rubriques standards
RewriteRule ^([-a-zA-Z0-9_]{1,})(/?)$ index.php?page=$1 [L]
Je suis navré de vous présenter de manière aussi brouillon, mais si ce post est brouillon c'est que mes idées sont aussi peu claires que mon énoncé.
Merci d'avance à ceux qui pourront me répondre.
Cordialement,
Matthieu