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!

Était-ce utile?

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/anchor
et 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#foo
qui sont presque ce que vous voulez, et ils ne le font pas gâcher la mise en cache

(Whoa, il est déjà minuit?)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top