2017-08-07 4 views
0

J'ai écrit une règle de réécriture dans mon fichier web.config pour une page spécifique et je veux la rediriger de la culture arabe 'ar' vers l'anglais 'en' avec le paramètre url.Règles de réécriture pour des pages spécifiques afin d'empêcher une culture spécifique

Ma règle actuelle est

<rule name="Home page with parameter" stopProcessing="true"> 
<match url="^/ar/TestPage.aspx?id=10" /> 
<action type="Redirect" url="/en/TestPage.aspx?id={R:1}" /> 
</rule> 

Mais sa ne fonctionne pas. D'une autre manière, puis-je réaliser cela? Seulement ceci (TestPage.aspx) sera redirigé. Pour les autres pages, pas besoin. Merci !

Répondre

1

Cette règle redirigera:

/ar/TestPage.aspx à /en/TestPage.aspx

/ar/TestPage.aspx?abc à /en/TestPage.aspx?abc

/ar/TestPage.aspx?id=10 à /en/TestPage.aspx?id=10

<rule name="Home page with parameter" stopProcessing="true"> 
    <match url="^ar(/TestPage.aspx)" /> 
    <action type="Redirect" url="/en{R:1}" /> 
</rule> 

Si vous souhaitez rediriger uniquement si la chaîne de requête a paramètre id, th Vous devez modifier la règle comme suit:

<rule name="Home page with parameter" stopProcessing="true"> 
    <match url="^ar(/TestPage.aspx)" /> 
    <conditions> 
     <add input="{QUERY_STRING}" pattern="id=" /> 
    </conditions> 
    <action type="Redirect" url="/en{R:1}" /> 
</rule> 
+0

votre première règle ne fonctionne pas. TestPage.aspx parfois pourrait avoir un paramètre parfois non. Liton

+0

pas de redirection vers /en/TestPage.aspx – Liton

+0

Je viens de vérifier à nouveau ma règle et cela fonctionne pour'/ar/TestPage.aspx'. J'ai reçu la redirection vers '/ fr/TestPage.aspx' –