web-dev-qa-db-fra.com

mod_rewrite pour éditer les cookies de manière conditionnelle

Est-il possible d'utiliser mod_rewrite pour modifier les valeurs dans les cookies en fonction d'une condition? Je suis complètement nouveau sur HTTP, mais j'ai essayé une chose ou deux. La seule expression régulière que je connaisse est à la Perl, j'espère que ça va.

RewriteRule s/.[0-9][0-9][0-9]/COOKIE=MSFNODE/g;
  1. MSFNODE est une valeur dans mon cookie.
  2. La chose sur laquelle je veux lancer mon regex est SESSIONID (également dans mon cookie). Je ne sais pas comment choisir cela comme cible.
  3. Comme le montre la regex, je souhaite remplacer .[0-9][0-9][0-9] par ma valeur de cookie appelée MSFNODE, niquement si MSFNODE existe!

Est-ce que COOKIE=MSFNODE est la bonne façon de faire cela? De plus, je souhaite que cela ne se produise que si MSFNODE existe - dans l'état actuel des choses, sera-t-il simplement transmis sans suivre la règle de réécriture si MSFNODE n'existe pas?

Je sens que même ma regex la plus basique est imparfaite ici.

4

Vous pouvez obtenir/détecter/vérifier l’existence de cookies à travers RewriteCond% {HTTP_COOKIE}

Définissez la valeur du cookie à l'aide de l'indicateur RewriteRulecookie | CO , dont la syntaxe est la suivante: [CO=NAME:VALUE:DOMAIN:lifetime:path:secure:httponly]

Un exemple avec les deux ensemble:

RewriteCond %{HTTP_COOKIE} cookiekey=cookievalue [NC]
RewriteRule ^(.*)$ /$1 [L,CO=cookiekey:NewCookieValue:mydomain.com:86400:/]

Dans l'exemple ci-dessus, la redirection n'aura lieu que si cookiekey a la valeur cookievalue. Vous pouvez également utiliser regex dans le cookievalue RewriteCond si vous le souhaitez.

Autres exemples (lisez également les commentaires des utilisateurs): http://www.askapache.com/htaccess/htaccess-fresh.html#Cookie_Manipulation_Tests_mod_rewrite

4
Anthony Hatzopoulos