2012-04-12 168 views
0

使用URL重写模块,我有被定义的规则设置为:IIS URL重写

Matches the pattern 
Regular Expressions 
Pattern: /support/viewmessages.aspx 
Ignore Case: true 
Action Type: Redirect 

Redirect URL: http://newdomain/support/viewmessages.aspx 
Append Query String: true 
Redirect Type: 301 

这听起来好像它应该重定向任何URL的格式化,如:
http://olddomain/support/viewmessages.aspx?forum=20&topic=75942&ForumName=General%20Discussion
成为:
http://newdomain/support/viewmessages.aspx?forum=20&topic=75942&ForumName=General%20Discussion

但是,似乎没有任何事情发生。我在旧域上获得了我的404,并且它不会追加到查询字符串的404上。

下面是IIS在我的web.config生成的代码:

<rule name="Forum Posts" patternSyntax="ECMAScript" stopProcessing="true"> 
    <match url="/support/viewmessages.aspx" /> 
    <action type="Redirect" url="http://newdomain/support/viewmessages.aspx" appendQueryString="true" /> 
</rule> 

任何帮助,将不胜感激。

+0

听起来好像这是沿着serverfault问题的线条更。 “编程”在哪里? – 2012-04-12 19:26:47

回答

1

尝试1:你有没有尝试没有正斜杠的模式?另一个想法是,是否有特殊的斜线和圆点,因为它们可能被视为正则表达式中的特殊字符。


第2点:你确实认识到这个点是regular expressions,中的特殊字符吧?您可能必须找到一种方式来逃避它,这样的URL喜欢就好“/support/viewmatches\.aspx”

+0

刚刚尝试过,没有领先的正斜杠,没有骰子。 – 2012-04-12 19:26:21

+0

“/support/viewmatches\.aspx”无法正常工作,但是“support/viewmatches \ .aspx” - 因此看起来您在两条战线都是正确的! – 2012-04-12 19:39:23