Page d'ancrage avec mod_rewrite?
-
06-09-2019 - |
Question
Je suis en train de mettre en place des ancres de page sur un site Web qui utilise mod_rewrite (Apache2 fonctionnant sur Ubuntu Server 9.04).
Mon fichier htaccess ressemble à ceci:
RewriteEngine On
RewriteRule ^information.php/([A-Za-z0-9-]+)/?$ information.php?display=$1 [NC,NE]
Si j'utilisais URL régulière est la requête ressemblerait à quelque chose comme ceci: http: //mydomain/information.php?display=faq#cost
Je suis l'espoir d'obtenir quelque chose comme ceci: http: // mondomaine / informations / faq / coût
Est-ce possible? Je crois comprendre que modrewrite ne tient pas compte des ancres de page, et que le navigateur traite avec lui? Je suppose que je peux utiliser une certaine façon mod_rewrite d'inclure les informations d'ancrage à la demande, mais je ne l'ai pas pu trouver quoi que ce soit documenter cela et ont essayé en vain d'écrire moi-même pendant des heures.
Merci!
La solution
En fait, si vous voulez que le résultant URL d'avoir un point d'ancrage, alors oui, il est possible. Il suffit de ne pas oublier que dans configs Apache, # marque le début d'un commentaire.
Si ce que vous voulez est comme ça - utilisateur entre
http://example.com/page/anchoret est redirigé vers
http://example.com/?p=page#anchor- vous devez utiliser 301 Redirect, ou quelque chose comme ça, il ne serait pas transparent pour l'utilisateur
Conclusion: Il est possible d'écrire une telle règle de redirection, il ne peut se faire entièrement côté serveur. Donc, je pense que vous pouvez pointer /information/faq
à /information.php?display=faq
puis utiliser des URL telles que:.
http://example.com/information/faq#fooqui sont presque ce que vous voulez, et ils ne le font pas gâcher la mise en cache
(Whoa, il est déjà minuit?)