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

问题描述 投票:0回答:2

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

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

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

iis redirect url-rewrite-module
2个回答
6
投票

注意:此答案并不回答 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. 服务器针对新 URL 响应 200 OK。 (地址栏显示新网址)

请求处理(重写):您想要指向 www.mysite.com/pqr 的 www.mysite.com/abc

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

0
投票

Rewrite 可以做 Redirect 可以做的所有事情,但反之则不然。 认为重定向是一种快速设置,您可以简单轻松地设置单个重定向规则。您只能提供一项用于重定向的通用规则。 而 Rewrite 可以让您更好地控制如何使用正则表达式处理任何给定的请求 URL。您还可以设置多个规则来定义自定义设置。

例如: 我想将 www.me.com 重定向到 www.me.com/app1 但如果请求是 www.me.com/notThisOne 然后转到 www.me.com/app2,你只能使用重写。

© www.soinside.com 2019 - 2024. All rights reserved.