Iis 7 IIS7 url重写问题(当有“?”时)&引用;

Iis 7 IIS7 url重写问题(当有“?”时)&引用;,iis-7,url-rewriting,Iis 7,Url Rewriting,我有一个URL的格式 abc/pqr/xyz/?word1 这需要重定向到 abc/pqr/xyz/?word2 可以使用IIS7重写吗?请参阅 您需要指定要匹配的url“abc/pqr/xyz”,然后指定要匹配和替换的查询字符串。可以使用具有以下规则的IIS7重写模块: <rule name="Rewrite querystring" stopProcessing="true"> <match url="^abc/pqr/xyz/?$" /> <

我有一个URL的格式

abc/pqr/xyz/?word1
这需要重定向到

abc/pqr/xyz/?word2
可以使用IIS7重写吗?

请参阅


您需要指定要匹配的url“abc/pqr/xyz”,然后指定要匹配和替换的查询字符串。

可以使用具有以下规则的IIS7重写模块:

<rule name="Rewrite querystring" stopProcessing="true">
    <match url="^abc/pqr/xyz/?$" />
    <conditions>
        <add input="{QUERY_STRING}" pattern="^word1$" />
    </conditions>
    <action type="Redirect" url="{R:0}?word2" appendQueryString="false" />
</rule>

它的作用是:检查url是否为
abc/pqr/xyz/
abc/pqr/xyz
,以及查询字符串是否为
word1
。如果是,它会将用户重定向到相同的url(
{R:0}
),但会附加
?word2

使用
appendQueryString=“false”
选项很重要,因为您不希望模块在末尾附加您的
word1


默认情况下,如果没有指定,重定向是301(永久),关于@Owen comment,它似乎最适合您的情况

您想重写查询字符串吗???@cheesemacfly是的,我们网站上的一类信息已经更改,因此需要为所有已将旧链接添加书签的用户重定向整个查询字符串。显然,我们已经在修复网站中的任何链接,重定向只是为了使旧链接不会中断:)似乎根本不起作用。这是我在web.config中的代码。IIS使用精确的正则表达式模式匹配。我不是100%同意,但您的匹配url可能需要删除尾随“/”才能成功匹配。