URL Rewriting et ancres html : incompatibilité ?

WRInaute occasionnel
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 !!
 
WRInaute passionné
Essai ceci:

Code:
RewriteRule ^page1.html#([0-9a-z]+)$ index.php?page=page1#$1 [L]
Mais je sais pas si cela marhe
 
WRInaute occasionnel
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 !!
 
WRInaute passionné
Oki sunnmagic
Je sais jamais quand il faut mettre le \.
Mais bon si cela marche tans mieux.
N'hesite pas a demander.
++
 
WRInaute passionné
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,
 
WRInaute passionné
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:
 
WRInaute passionné
Pourquoi Dj_Apx cela ne marcherai pas ?
C'est bien le systeme des ancres HTML ?
La je ne te comprend pas!
 
WRInaute passionné
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
 
WRInaute occasionnel
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]
 
WRInaute passionné
(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".
 
WRInaute discret
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...
 
Discussions similaires
Haut