2013-03-13 49 views
3

我有一个URL格式IIS7 url重写问题时有“?”

abc/pqr/xyz/?word1 

,这一点需要重定向到

abc/pqr/xyz/?word2 

是可能使用IIS7改写呢?

+0

你想重写查询字符串? – cheesemacfly 2013-03-13 18:45:12

+0

@cheesemacfly是的,我们网站上的一类信息已经发生了变化,所以这个查询字符串需要被重定向给任何加了书签的旧链接。显然,我们正在修复我们网站上的任何链接,重定向只是为了让旧链接不会中断:) – 2013-03-14 11:39:51

回答

3

它使用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注释,似乎是最适合你的情况!

+0

它对我来说真的很好。谢谢。非常感激 – 2013-03-15 11:56:07

0

here

你需要指定的URL匹配, “ABC/PQR/XYZ”,然后将查询字符串匹配和替换。

+0

Just does not似乎工作。这是我在web.config中的代码 <! - language:c# - > <添加输入= ”{QUERY_STRING}“ 图案= ”(字词)“/> <动作类型= ”重定向“ URL =”/ ABC/\ 1/XYZ/\?WORD2 “/> 2013-03-14 09:36:08

+0

IIS使用准确的RegEx模式匹配。我不是100%的,但你的比赛网址可能需要去掉尾部'/'才能让比赛成功。 – rbedger 2013-03-14 12:47:18