IIS URL 重写
Posted
技术标签:
【中文标题】IIS URL 重写【英文标题】:IIS URL Rewriting 【发布时间】:2012-04-25 04:37:02 【问题描述】:使用 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>
任何帮助将不胜感激。
【问题讨论】:
在我看来,这更像是服务器故障问题。 “编程”在哪里? 【参考方案1】:尝试 1:您是否尝试过不使用正斜杠的模式?我的另一个想法是斜线和点是否有什么特别之处,因为它们可能被视为正则表达式中的特殊字符。
第 2 点:您确实知道点是 regular expressions, 中的特殊字符,对吧?您可能必须找到一种方法来逃避它,以便 url 喜欢“/support/viewmatches\.aspx”
【讨论】:
"/support/viewmatches\.aspx" 不起作用,但 "support/viewmatches\.aspx" - 所以看起来你在两个方面都是对的!以上是关于IIS URL 重写的主要内容,如果未能解决你的问题,请参考以下文章