Url ne change pas dans la barre d'adresse
sclolo
-
sclolo -
sclolo -
Bonjour à tous.
J'ai le code suivant dans mon .htaccess :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^accueil-([0-9]+)\.html$ /site/accueil.php?page=$1 [L]
Quand je tape accueil-1.html j'arrive bien sur la bonne page.
Par contre quand je saisi http://monsite/site/accueil.php?page=1 l'adresse ne change pas dans la barre d'adresse du navigateur --> http://monsite/site/accueil-1.html.
Je ne comprends pas.
Merci de m'aider.
J'ai le code suivant dans mon .htaccess :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^accueil-([0-9]+)\.html$ /site/accueil.php?page=$1 [L]
Quand je tape accueil-1.html j'arrive bien sur la bonne page.
Par contre quand je saisi http://monsite/site/accueil.php?page=1 l'adresse ne change pas dans la barre d'adresse du navigateur --> http://monsite/site/accueil-1.html.
Je ne comprends pas.
Merci de m'aider.
7 réponses
-
L'adresse ne va pas changer d'elle même dans la barre d'adresse.
L'ancien écriture reste valide.
Par contre, tape http://monsite/site/accueil-1.html dans la barre d'adresse.
Il te faudra donc modifier tout tes liens vers ces pages. -
Salut.
Dans le script PHP tu peux utiliser la variable $_SERVER['PHP_SELF'] qui contient le nom du fichier du script en cours d'exécution, par rapport à la racine web.
if(!preg_match('#^/site/accueil-([0-9]+)\.html$#i',$_SERVER['PHP_SELF'])) { header('Location: /site/accueil-'.$_GET['page'].'.html'); } -
Merci, mais la redirection se fait correctement mais l'adresse redevient quand même l'adresse d'origine.
-
Ce n'est pas possible, sauf si tu as un autre script qui fait la redirection vers « /site/accueil.php?page=... »
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci, bon en fait j'ai résolu le problème en réécrivant les liens dans mon source, chose que je n'avais pas saisi en première lecture des différentes doc.
Maintenant j'aimerai que
RewriteRule ^accueil-([0-9]+)\.html$ /site/accueil.php?page=$1 [L]
Devienne
RewriteRule ^nom_de_ma_page.html$ /site/accueil.php?page=$1 [L]
en fonction de la valeur de page. je pense qu'avec RewriteCond %{QUERY_STRING} on peut le faire mais j'ai du mal à saisir le déroulement. -
Il suffit de faire comme ceci :
RewriteRule ^(.+)\.html$ /site/accueil.php?page=$1
Ainsi :
index.html => /site/accueil.php?page=index
photos.html => /site/accueil.php?page=photos
... -
Super merci beaucoup. J'ai du mal avec les patterns. Pas besoin de l'url rewriting pour faire ça !