8
votes

Puis-je envoyer une redirection HTTP à une URL avec une ancre?

est-il possible d'envoyer une réponse avec 302 code d'état à une URL comme celle-ci:

http://mysite.com/something/#SSomethingelse


6 commentaires

Quelle langue utilisez-vous?


Serveur Web? Si vous faites cela en utilisant mod_rewrite, vous ne fonctionnerez pas comme # 's est échappé


@Manni oui j'ai essayé cela, mais j'ai eu une erreur dans mon code, c'est pourquoi cela n'a pas fonctionné. Maintenant ça marche. @Shiraz j'utilise Python.


Cela signifie-t-il que votre question n'est plus pertinente?


@Manni avez-vous une mauvaise journée?


Non, je vais bien, merci. Pourquoi demandez-vous?


6 Réponses :


2
votes

Il semble n'y avoir aucun problème à le faire depuis PHP:

Header(
    "Location: http://en.wikipedia.org/wiki/HTTP#Status_codes",
    true,
    302
);


2 commentaires

Je connais cette personne!


Je veux faire ça, mais si je fais cela, il y a un problème. Si je passe sur mon lien, je redirierai dans ce cas http://fr.wikipedia.org/wiki/http#status_codes/ et le / à la fin ne montre pas le point d'ancrage. Je cède renommer le point d'ancrage sur status_codes / Je veux savoir s'il y a un meilleur moyen de le faire.



1
votes

oui. C'est le navigateur qui n'envoie pas le hachage au serveur, pas l'inverse.


0 commentaires

4
votes

Après la spécification HTTP, la valeur du Lieu Le champ d'en-tête doit être une valeur absolueuri . Et c'est selon le RFC 3986 (ils ont juste changé le nom de Absoluteuri to absolute-uri ): xxx

si théoriquement le fragment n'est pas autorisé dans le cadre de la valeur. Mais les navigateurs peuvent le gérer.


0 commentaires

6
votes

Oui, vous pouvez utiliser l'identifiant de fragment. Ceci est un bug connu dans la spécification HTTP.

voir http://trac.tools.ietf.org/wg / httpbis / trac / ticket / 6 .


0 commentaires

4
votes

avec une lecture stricte RFC2616 ne permet pas de fragments dans Les valeurs d'en-tête de localisation, car elles ne font pas partie d'URIS absolue. Toutefois, avec le Draft de réécriture HTTP de l'IETF Ceci a été réparé .

Récemment Julian Mettez une comparaison Comment les navigateurs manipulent les fragments URI (c'est ce que traite les balises HTML Anchor traitent) Dans l'en-tête de localisation: http://www.greenbytes.de/tech/tc2231/redirects .html

donc la réponse est: Oui, vous pouvez mettre des fragments dans l'en-tête d'emplacement URIS.


0 commentaires

1
votes

tandis que l'original RFC 2616 autorisé uniquement Absoluteuri Dans l'emplacement L'en-tête, car les autres (plus anciennes) expliquent, le courant RFC 7231 permet à tout uri-référence , soit un URI complet (avec fragment éventuellement inclus), soit même une uri relative , résolu contre l'URI effectif actuel. Et il décrit même explicitement le comportement des fragments lors de la redirection (si l'en-tête inclut le fragment, il est utilisé, sinon, le fragment d'origine est hérité et appliqué après la redirection).

I.e. oui, vous pouvez , il est même officiellement standardisé maintenant.


0 commentaires