url ne change pas dans la barre d'adresse

WRInaute passionné
Bonjour,

c'est logique que ton adresse ne change pas puisque rien ne demande au navigateur de changer... La règle de reécriture ne fonctionne que dans un sens.

Si tu veux éviter du contenu dupliqué, il te reste à gérer l'url canonique dans les entêtes de pages : cela nécessite des modifications du code php qui génère tes pages.
 
Nouveau WRInaute
merci. un exemple peut-être ?

J'ai testé ça mais ça ne change pas l'url

if(!preg_match('#^site/accueil-([0-9]+)\.html$#i',$_SERVER['PHP_SELF']))
{
header('Location: /site/accueil-'.$_GET['page'].'.html');
}
 
WRInaute accro
les marqueurs debut et fin de chaine ^$ ne sont pas valable avec le moteur PCRE. ta redirection ne se fait pas car tu as du laissé du code html, texte ou autre avant, fait un script avec juste la redirection pour tester.

Code:
<?php
if( !preg_match('#site/accueil-([0-9]+)\.html#i', $_SERVER['PHP_SELF'] ) ) {
header('Status: 301 Moved Permanently', false, 301); 
header('Location: /site/accueil-'.$_GET['page'].'.html');
exit(); } ?>

Pour le rewrite, il te faut mettre impérativement une condition, ensuite tu met la redirection avec un R comme flag (pour forcer la redirection)

Code:
RewriteCond %{REQUEST_URI} ^/site/accueil.php?page=([0-9]+)
RewriteRule $  /accueil-%1.html [R=301,L]
 
Discussions similaires
Haut