我需要创build一个重写规则如下:
OldPage.aspx?UserId = 12345应redirect到NewPage.aspx?Id = 12345
'12345'可以是任何数字值。)
我有页面redirect工作,但不知道如何将“UserId”更改为“Id”(我可以在我的代码中执行,而是在web.config中执行)。
这是我的:
<rewrite> <rules> <rule name="Old Site to New" patternSyntax="Wildcard" stopProcessing="true"> <match url="*OldPage.aspx*" /> <action type="Rewrite" url="NewPage.aspx" appendQueryString="true" logRewrittenUrl="true" /> </rule> </rules> </rewrite>
我使用的是通配符,但是对于正则expression式或通配符的build议都可以。
这应该根据你的URL例子做这个工作:
<rule name="Old2New"> <match url="^OldPage\.aspx$" /> <conditions> <add input="{QUERY_STRING}" pattern="UserId=(\d+)" /> </conditions> <action type="Rewrite" url="NewPage.aspx?Id={C:1}" appendQueryString="false" /> </rule>
很多人常犯的错误是试图匹配整个URL,包括查询string。 实际情况是:当匹配URL时,模式被应用到它的path部分,并且查询string必须被分开匹配。