2011-04-06 74 views
5

我有一个.NET网站,我打算将其关闭,并计划使用web.config中的重写规则将所有请求重定向到“www.mysite.com”。应该是一个简单的任务,但事实并非如此。我已经删除从文件系统中的所有内容,除了一个Default.aspx页面,并用以下重写规则默认的web.config:使用IIS7 URL重写来重定向所有请求

<rule name="Redirect All" stopProcessing="true"> 
    <match url="^(www\.)?mysite\.com(/.+)$" /> 
    <action type="Redirect" url="www.mysite.com" appendQueryString="false" /> 
</rule> 

如果我要求www.mysite.com/garbage.aspx服务器仍在尝试查找garbage.aspx或我提供的任何其他url,就像重写规则不存在一样。 非常令人沮丧。想法?

回答

5

是否要将所有请求重定向到您的新网站?如果是这样,这应该这样做:

<match url=".*" /> 
+0

上面的正则表达式不应该有效地完成相同的事情,因为所有的请求将是mysite.com中的某个页面?对于规范的URL,我有类似的规则可以正常工作。我真的不知道我在搞什么。 – joelmdev 2011-04-07 14:11:04

+0

我远离正则表达式专家,但我认为它与正则表达式中的分组以及IIS重写器使用它们的方式有关。当你尝试我提供的正则表达式时会发生什么?对不起,我不能对这个特别的评论更有帮助。 – Matt 2011-04-07 15:32:20

+0

我结束了重定向到一个不同的网站,在这种情况下你的解决方案就像一个魅力。不过,我想我必须添加一条规则来否定内部链接,否则重定向规则会循环......我认为我也必须对原始规则进行处理。感谢你的协助。 – joelmdev 2011-04-08 18:05:41