Aller au contenu

Apache Rewrite HELP


kazofr

Sujets conseillés

Hello,

Je suis débutant smile.gif

Un site intranet a été réalisé...(avant) y a pas de doc...

avec des redirections et une authentification avec CAS (un SSO de Yale)... j'essaye de comprendre car y a des fosi on arrive pas à se connecter

Aussi je ne comprends pas les lignes en orange :

# URL with enweb1_enu AND NO ticket= AND SWECmd=GotoView AND "&"
RewriteCond %{REQUEST_URI} ^/enweb1_enu(.*)$
RewriteCond %{QUERY_STRING} !^(.*)ticket=(.*)$
RewriteCond %{QUERY_STRING} ^(.*)SWECmd=GotoView(.*)$
RewriteCond %{QUERY_STRING} ^(.*)&(.*)$
RewriteRule ^(.*)$ $1?%1\%26%2 [NE,R=301]

# URL with enweb1_enu AND NO ticket= AND SWECmd=GotoView AND "&"
# Go to CAS + URL
RewriteCond %{QUERY_STRING} !^(.*)ticket=(.*)$
RewriteCond %{QUERY_STRING} ^(.*)SWECmd=Start(.*)$
RewriteCond %{REQUEST_URI} ^/enweb1_enu(.*)$
RewriteRule ^/(.*)$ http://guidecas-envweb1.staging/GUIDeCAS/login?service=http://%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING}

# URL with enweb1_enu AND NO ticket= AND "_sn="
# Rewrite rule ???
RewriteCond %{REQUEST_URI} ^/enweb1_enu(.*)$
RewriteCond %{QUERY_STRING} !^(.*)ticket=(.*)$
RewriteCond %{HTTP_COOKIE} (^|;\s*)_sn=([^;]+)
RewriteRule ^/(.*)$ - [E=ticket:BNP_sn=%2]

# URL with enweb1_enu AND ticket= AND NO "_sn=" AND COOKIE
# Rewrite rule ???
RewriteCond %{REQUEST_URI} ^/enweb1_enu(.*)$
RewriteCond %{QUERY_STRING} ^(.*)ticket=(.*)$
RewriteCond %{QUERY_STRING} !^(.*)_sn=(.*)$
RewriteCond %{HTTP_COOKIE} (^|;\s*)_sn=([^;]+)
RewriteRule ^/(.*)$ - [E=ticket:_sn=%2&%{QUERY_STRING}]

# URL with enweb1_enu AND ticket= AND NO "_sn=" AND COOKIE
# Rewrite rule ???
RewriteCond %{REQUEST_URI} ^/enweb1_enu(.*)$
RewriteCond %{HTTP_COOKIE} (^|;\s*)_sn=([^;]+)
RewriteCond %{QUERY_STRING} ^(.*)ticket=(.*)$
RewriteCond %{QUERY_STRING} ^(.*)_sn=(.*)$
RewriteRule ^/(.*)$ - [E=ticket:%0]

Header add CAS_TICKET "%{ticket}e"
RequestHeader set CAS_TICKET "%{ticket}e"

Merci par avance pour votre aide

smile.gif

Lien vers le commentaire
Partager sur d’autres sites

La suite est simple pourtant...



Le %1 est une référence arrière vers la première chaîne trouvée et mise entre parenthèses dans une de tes conditions...


Dans ton premier exemple,



RewriteCond %{REQUEST_URI} ^/enweb1_enu(.*)$

cela correspond à ce qui se trouve après enweb1_enu.



Le \%26 est un littéral, vu que le signe % est échappé par un anti-slash.



Le %2 correspond à la référence arrière de la deuxième chaîne qui donne un "match" dans tes conditions.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...