URL Rewriting et ancres html : incompatibilité ?

Bonjour à tous,

Voilà, j'ai une petite question.

Mon site comporte quelques pages contenant des ancres html permettant d'atteindre une zone de la page instantanément, avec un lien de la forme index.php?page=page1#ancre1

Cependant, lorsque je souhaite convertir cette adresse en url rewriting, l'ancre ne fonctionne plus, je tombe sur la bonne page "page1", mais elle ne descend pas sur l'ancre "ancre1". Voici la "formule" que j'emploie :

Code:
RewriteRule ^page1\/([0-9a-z]+)\.html$ index.php?page=page1#$1 [L]

Merci d'avance !!
 
Essai ceci:

Code:
RewriteRule ^page1.html#([0-9a-z]+)$ index.php?page=page1#$1 [L]
Mais je sais pas si cela marhe
 
Ca marche !! merci beaucoup !

Par contre, il fallait juste mettre ^page1\.html#([0-9a-z]+)$ au lieu de ^page1.html#([0-9a-z]+)$ pour que cela fonctionne ;)

Merci !!
 
Oki sunnmagic
Je sais jamais quand il faut mettre le \.
Mais bon si cela marche tans mieux.
N'hesite pas a demander.
++
 
Borower a dit:
Oki sunnmagic
Je sais jamais quand il faut mettre le \.
++
La première partie de ta regle utilise les REGEX.
le . signifie n'importe quel caractère
le \ permet d'échapper un caractère spécial : \. signifie le point

index.php > index.php correspond, mais aussi indexaphp, indexbphp, ...
index\.php > seul index.php correspond

Cordialement,
 
sunnmagic a dit:
Ca marche !! merci beaucoup !

Par contre, il fallait juste mettre ^page1\.html#([0-9a-z]+)$ au lieu de ^page1.html#([0-9a-z]+)$ pour que cela fonctionne ;)

Merci !!
Non mais attends, c'est absolument impossible que ça marche ça, ou alors je mange mon chapeau.

On peut voir le reste de ton .htaccess stp ? :roll:
 
Pourquoi Dj_Apx cela ne marcherai pas ?
C'est bien le systeme des ancres HTML ?
La je ne te comprend pas!
 
le serveur ne sait rien de l'ancre html demandée, il connait l'url jusqu'à la fin du QSA (?truc=bidule) mais le navigateur ne lui demande pas #ancre.
Donc mettre un # dans une règle de réécriture est incorrect.
C'est pourquoi j'ai demandé à voir le reste du .htaccess
 
Voici un extrait de mon .htaccess :

Code:
RewriteRule ^liens\.html#([0-9a-z]+)$ index.php?page=liens#$1&menu=m_div [L]
RewriteRule ^liens\.html$ index.php?page=liens&menu=m_div [L]
RewriteRule ^contact\.html$ index.php?page=contact&menu=m_div [L]
RewriteRule ^especes-menacees\.html$ index.php?page=menace&menu=m_div [L]
 
(je l'aurais parié).
Alors :
  1. La première ligne n'est jamais exécutée, à cause de ce que j'ai expliqué, donc tu peux la supprimer, tout fonctionnera pareil.
  2. #1&menu=m_div ça ne veut rien dire. pourquoi ? parce que ta page php ne pourrait pas interpréter $_GET['menu']. elle recevrait page=liens. et ensuite le navigateur chercherait une ancre nommée "1&menu=m_div".
 
Je reprend une vieille discussion...

Est-ce que l'on peut oui ou non utiliser une ancre avec .htaccess?

Exemple:
ma-page#menu1-active => ma-page?activation_menu1=1

Si oui comment car j'ai bien fait des essais mais sans succès...
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut