Exemple 6 : Migration des règles du module de réécriture Apache

Example Inc., utilise actuellement le module de réécriture Apache pour traiter les demandes de recherche envoyées à ses serveurs Web et les rediriger vers le serveur approprié sur la base des informations contenues dans l’URL de la requête. Example Inc. souhaite simplifier sa configuration en migrant ces règles sur la plate-forme Citrix ADC.

Plusieurs règles de réécriture Apache que Example utilise actuellement sont présentées ci-dessous. Ces règles redirigent les demandes de recherche vers une page de résultats spéciale si elles n’ont pas de chaîne SiteID ou si elles ont une chaîne SiteID égale à zéro (0), ou vers la page de résultats standard si ces conditions ne s’appliquent pas.

Voici les règles de réécriture Apache actuelles :

  • RewriteCond %{REQUEST_FILENAME} ^/search$ [NC]
  • RewriteCond %{QUERY_STRING} !SiteId= [OU]
  • RewriteCond %{QUERY_STRING} SiteId=0
  • RewriteCond %{QUERY_STRING} CallName=DisplayResults [NC]
  • RewriteRule ^.*$ results2.html[P, L]
  • RewriteCond %{REQUEST_FILENAME} ^/search$ [NC]
  • RewriteCond %{QUERY_STRING} CallName=DisplayResults [NC]
  • RewriteRule ^.*$ /results.html [P, L]

Pour implémenter ces règles de réécriture Apache sur Citrix ADC, vous devez créer des actions de réécriture avec les valeurs indiquées dans les tableaux suivants.

Nom de l’action Type d’action de réécriture Expression pour choisir la référence cible Expression de chaîne pour le texte de remplacement
Action-Rewrite-Display_Results_NulSiteID REPLACE HTTP.REQ.URL “/results2.html”
Action-Rewrite-Display_Results REPLACE HTTP.REQ.URL “/results2.html”

Vous devez ensuite créer des stratégies de réécriture avec les valeurs indiquées dans les tableaux ci-dessous.

Nom de la stratégie Nom de l’action Action non définie Expression
Policy-Rewrite-Display_Results_NulSiteID Action-Rewrite-Display_Results_NulSiteID NOREWRITE HTTP.REQ.URL.PATH.SET_TEXT_MODE(IGNORECASE).EQ(“/search”) && (!HTTP.REQ.URL.QUERY.CONTAINS(“SiteId=”) || HTTP.REQ.URL.QUERY.CONTAINS(“SiteId=0”) || HTTP.REQ.URL.QUERY.SET_TEXT_MODE(IGNORECASE).CONTAINS(“CallName=DisplayResults”))
Policy-Rewrite-Display_Results Action-Rewrite-Display_Results NOREWRITE HTTP.REQ.URL.PATH.SET_TEXT_MODE(IGNORECASE).EQ(“/search”) || HTTP.REQ.URL.QUERY.SET_TEXT_MODE(IGNORECASE).CONTAINS(“CallName=DisplayResults”))

Enfin, vous devez lier les stratégies de réécriture, en attribuant à la première une priorité de 600 et à la seconde une priorité de 700, puis définir l’expression goto sur NEXT pour les deux liaisons.

Citrix ADC gère désormais ces requêtes de recherche exactement comme le serveur Web l’a fait avant la migration des règles du module de réécriture Apache.

Exemple 6 : Migration des règles du module de réécriture Apache