使用IIS 7重定向模块或编写自己的编码

时间:2009-11-30 21:29:11

标签: asp.net iis iis-7

使用IIS重定向模块重定向与仅编写自己的代码并使用Response.context进行播放有什么区别?对我来说它没有什么区别,它们都做同样的事情,并且在IIS中使用重定向模块要容易得多,因为它似乎相对重定向!与此代码相同,例如global.asax:

app.Response.Status =“301永久移动”; app.Response.AddHeader(“Location”,newLocation);

我不对吗?你可以用两种不同的方式做同样的事情! IIS或代码!使用IIS只需将其放入应用程序的web.config:

<httpRedirect enabled="false" destination="http://www.domainToRedirectTo.com/" exactDestination="false" httpResponseStatus="Permanent" />
好又简单! exactDestination为false,因此它将相对地重定向到目的地之外。

我希望听到反对使用单一方式与另一种方式的论点,因为我没有看到任何方式都有益的论据。两者都满足相同的目标。

1 个答案:

答案 0 :(得分:1)

你说的方式没有区别。编码版本允许您在运行时对输入做出反应,并使用代码将人们重定向到不同的页面 - 例如,对于login.aspx页面,这可能会重定向到login-failed-page.aspxlogin-succesfull-page.aspx 。如果它只是硬编码没有区别。

请记住,重定向不仅仅意味着指示URL的永久重定位。 301 is just one of the redirects。您可能希望将人们重定向到临时消息(重定向代码307) - 例如,如果您正在为Apple工作而Steve Jobs正在发表主题演讲 - 即将商店重定向到“Steve Jobs正在发表主题演讲,我们正在更新商店“页面。在这个例子中,它更好地轻弹一个开关并让你的整个web-farm通过运行时逻辑获取更改,而不是更新所有IIS服务器的配置文件。每个重定向都有自己的目的。