IIS重定向和重写之间的区别(与重定向有关)

时间:2014-04-15 07:58:01

标签: iis redirect url-rewrite-module

这个问题可能听起来很奇怪,但是给定article,绝对可以使用重写模块来执行重定向,就像重定向模块一样。两者都能够发出永久重定向(301)。

有一个question要求区别,但它谈到了重写模块用于纯重写而非重定向。另一个post说明了这一点,但似乎没有得到足够的答案。

因此,我的问题是:这些模块之间有什么区别?在重定向时,哪一个优于另一个?

1 个答案:

答案 0 :(得分:3)

注意:此答案不能回答IIS重定向(httpRedirect)与URL重写模块重定向之间的区别,而是重写URL重写模块(重定向与重写)之间的区别。

如果您尝试将复杂的URL(带有查询字符串)隐藏到更友好的URL,则可以使用“重写”,因为浏览器/搜索引擎将始终看到200OK,并假设内容来自请求的原始URL。

如果您尝试向新网址的搜索引擎/用户指示资源更改,那么当您发送301状态代码表示资源已从原始位置移至此新位置时,重定向即可。

IIS重定向:

  • 重定向发生在客户端
  • 浏览器在地址栏中看到不同的URL。
  • 客户端知道重定向网址。
  • 301/302可以发行。编辑:(303/307也可以发行)
  • 有利于搜索引擎优化/搜索引擎指示新网址。 mysite.com/abc到mysite.com/pqr
  • 可以重定向到同一站点或不同站点。

IIS重写:

  • 重定向发生在服务器端
  • 浏览器在地址栏中看不到新的URL。
  • 客户端不知道是否通过重写的网址提供内容。
  • 没有发出301/302。假设重写的URL资源可用,这将是正常的200 OK。
  • 很高兴隐藏不友好的URL和SEO。 mysite.com/article/test-sub/到mysite.com/article.aspx?id=test-sub
  • 通常用于同一网站内的资源。

请求处理(REDIRECT):www.mysite.com/abc重定向到www.mysite.com/pqr

  1. 客户来电:www.mysite.com/abc
  2. 网址重写模块会看到客户端网址的规则匹配,并提供新的重定向网址。
  3. 服务器以301响应新客户端以致电www.mystite.com/pqr
  4. 客户致电新网址www.mystite.com/pqr
  5. 服务器以新的URL响应200 OK。 (地址栏显示新网址)
  6. 请求处理(REWRITE):www.mysite.com/abc,您想指向www.mysite.com/pqr

    1. 客户来电:www.mysite.com/abc
    2. 网址重写模块看到规则匹配,并向IIS提供新的重写网址,即www.mysite.com/pqr,服务器在IIS中请求该网址。
    3. 服务器以200 OK的原始URL响应,但内容来自重写的URL。 (地址栏显示原始网址,客户端不知道您正在提供来自不同网址的内容)