2017-10-06 3 views
1

E.g.Est-il possible de réécrire une URL avec un fragment dans nginx?

réécrire ^/page/# page; Je ne suis pas sûr si cela serait même possible, en raison de la nature des fragments (jamais envoyé au serveur, etc)

Mais puisque je réécris TO un, plutôt que d'un, je pense que cela devrait fonctionner?

Dans quel cas puis-je encoder/échapper ce signe de hachage afin qu'il ne démarre pas un commentaire ..?

Merci!

+0

Il doit être une redirection * * externe de - il faut donc ajouter le '' redirect' ou un suffixe permanent' à l'instruction 'rewrite'. –

+0

Pouvez-vous expliquer ce que vous entendez par "externe" dans ce cas? Et comment encoder le signe hash/pound? – Codemonkey

Répondre

1

Comme vous le savez, le fragment est utilisé par le navigateur et n'est pas envoyé au serveur.

Mais vous pouvez utiliser nginx pour réécrire une requête dans un nouvel URI contenant un fragment, mais cela n'a de sens que si le nouvel URI est envoyé au navigateur, c'est-à-dire en utilisant une réponse HTTP 3xx.

La directive rewrite génère une réponse HTTP 3xx lorsque le redirect (302) ou permanent (301) drapeau est fourni (ou la chaîne de remplacement commence par un système - voir this document pour plus).

Par exemple:

rewrite ^/page /#page redirect; 
+0

Super, merci. Comment puis-je éviter le # début d'un commentaire? – Codemonkey

+0

Oh ok, il s'avère que ce n'est pas quelque chose dont je dois m'inquiéter! – Codemonkey