为特定页面重写规则以防止特定文化

问题描述:

我已经在特定页面的web.config文件中编写了重写规则,并且我希望将它从阿拉伯文化'ar'重定向到带参数url的英文'en'。为特定页面重写规则以防止特定文化

我现在的原则是

<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> 

但它不工作。任何其他方式可以实现这一目标吗?只有这个(TestPage.aspx)将被重定向。对于其他网页没有必要。谢谢 !

此规则将重定向:

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

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

​​到/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> 

如果你想重定向只有当查询字符串有参数id,日你需要修改这样的规则:

<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

你的第一条规则不起作用。有时候TestPage.aspx可能有参数。 Liton

+0

没有重定向到/en/TestPage.aspx – Liton

+0

我刚刚检查过我的规则,它对'/ ar/TestPage.aspx'有效。我收到重定向到'/ en/TestPage.aspx' –