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

Mat*_*ias 5 iis redirect url-rewrite-module

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

有一个问题要求区别,但它谈到了用于纯粹重写而不是重定向的重写模块。另一篇文章清楚地说明了这一点,但似乎没有得到足够的答案。

因此,我的问题是:这些模块之间有什么区别?在重定向方面,哪个比另一个更受欢迎?

bdo*_*shi 5

注意:这个答案没有回答 IIS 重定向 (httpRedirect) 与 URL 重写模块的重定向之间的区别,而是 URL 重写模块(重定向与重写)之间的区别。

如果您试图将复杂的 URL(带有查询字符串)隐藏到更友好的 URL 中,那么重写是一种方法,因为浏览器/搜索引擎将始终看到 200OK 并假设内容来自请求的原始 URL。

如果您试图向搜索引擎/新 URL 的用户指示资源的更改,那么重定向是您发送 301 状态代码表示资源已从原始位置移动到此新位置时要走的路。

IIS 重定向:

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

IIS 重写:

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

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

  1. 客户电话:www.mysite.com/abc
  2. URL 重写模块看到客户端 URL 的规则匹配并提供新的重定向 URL。
  3. 服务器响应 301 并提供新的 URL 供客户端调用 www.mystite.com/pqr
  4. 客户调用新 URL www.mystite.com/pqr
  5. 服务器以 200 OK 响应新 URL。(地址栏显示新网址)

请求处理 (REWRITE): www.mysite.com/abc 您要指向 www.mysite.com/pqr

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