2010-10-06 27 views
3

J'ai une page qui émet une redirection HTTP. J'ai besoin d'ajouter l'id de session en cours (jsessionid) à la fin de la redirection HTTP pour passer cet identifiant en tant que paramètre GET dans la redirection.Comment ajouter la valeur de cookie à la fin de la réponse Emplacement en-tête avec Apache?

La directive Header append de mod_header peut-elle saisir une valeur de cookie via SetEnvIf?

Est-ce qu'une réécriture devrait plutôt être impliquée? Mais mod_rewrite vient de réécrire la demande pas la réponse , oui?

Comment résoudriez-vous cela d'une perspective Apache sans toucher au code back-end?


Mise à jour: l'Apache-JVM est gérée par mod_jk OU par une connexion IBM HTTP Server à WebSphere.

+0

Comment vous connectez-vous à votre back-end? Utilisez-vous mod_proxy/mod_jk pour vous connecter à un back-end, ou est-ce un module interne d'apache comme mod_python/mod_php? – ivy

+0

Pour autant que je sache, il n'y a aucun moyen d'obtenir un seul nom/valeur de cookie. Mais vous pouvez obtenir le champ 'Cookie:' complet dans un 'RewriteRule' en utilisant'% {HTTP_COOKIE} '. Voir http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond – Lekensteyn

+0

@Lekensteyn, j'ai seulement utilisé des réécritures pour réécrire des requêtes INCOMING, comment peuvent-elles être utilisées pour réécrire des en-têtes sur des réponses? – Xailor

Répondre

7

Quant à ma connaissance, avec Apache vous le faites comme ceci:

SetEnvIf Cookie "mycookie=([^;]+)" MYCOOKIE=$1 
SetEnvIf Cookie "mycookie=([^;]+)" HAVE_MYCOOKIE=1 
Header add Set-Cookie "mycookie=%{MYCOOKIE}e; expires=0" env=HAVE_MYCOOKIE 

Vous pouvez également ajouter des attributs de cookie supplémentaires comme chemin et domaine si vous voulez.

+0

Est-ce que cela n'ajouterait pas le cookie à chaque réponse sortante? Xepoch ne le voulait que pour les réponses de type redirection. – Abid

+0

En effet, j'ai négligé cette exigence, mais je ne connais pas une solution immédiate à cela. – Janoszen