ADC

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

Example Inc. utilise actuellement le module de réécriture d’Apache pour traiter les demandes de recherche envoyées à ses serveurs Web et rediriger ces demandes vers le serveur approprié sur la base des informations contenues dans l’URL de la demande. Example Inc. souhaite simplifier sa configuration en migrant ces règles vers la plateforme NetScaler.

Plusieurs règles de réécriture d’Apache utilisées actuellement par Example sont présentées ci-dessous. Ces règles redirigent les demandes de recherche vers une page de résultats spéciale si elles ne comportent pas de chaîne SiteID ou si la chaîne SiteID est é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= [OR]
  • 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 NetScaler, vous devez créer des actions de réécriture avec les valeurs des 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 REMPLACER HTTP.REQ.URL “/results2.html”
Action-Rewrite-Display_Results REMPLACER 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.

NetScaler gère désormais ces demandes de recherche exactement comme le faisait le serveur Web avant la migration des règles du module de réécriture Apache.

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