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

时间:2017-08-07 09:30:26

标签: c# asp.net web-config

我已经在我的web.config文件中为特定页面编写了一条重写规则,我想从阿拉伯文化中重定向它' ar'英语' en'使用参数url。

我目前的规则是

<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)才会重定向。对于其他页面不需要。谢谢!

1 个答案:

答案 0 :(得分:1)

此规则将重定向:

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

如果您只想在查询字符串包含参数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>