RewriteCond comparant deux variables dans Apache htaccess

J’aimerais avoir une rewritecond qui devienne true si deux variables HTTP_ORIGIN et HTTP_HOST sont égales. j’ai essayé

 RewriteCond %{HTTP:Origin} ^http://%{HTTP_HOST}(/|$) 

Mais malgré la couleur syntaxique de Netbeans, il semble qu’Apache ne remplace pas %{HTTP_HOST} par sa valeur. Je l’ai deviné parce que

 RewriteCond %{HTTP:Origin} ^http://cnfr005554(/|$) RewriteCond %{HTTP_HOST} =cnfr005554 

Travaux.

Alors, comment puis-je tester que les deux variables %{HTTP:Origin} et %{HTTP_HOST} sont égales? (et oui, c’est pour appliquer les directives de l’OWASP afin d’atténuer le XSRF)

Dans RewriteCond vous ne pouvez pas utiliser une variable sur le côté droit.

Vous devez l’utiliser comme ceci:

 RewriteCond %{HTTP_HOST}##%{HTTP:Origin} ^(.+)##http://\1(/|$) 

Nous joignons ici 2 variables en utilisant un délimiteur ## (cela peut être n’importe quoi). Ensuite, sur RHS, nous HTTP_HOST et capturons la valeur avant ## qui représente HTTP_HOST . Après ## utilisant une back-reference \1 nous faisons notre correspondance.