IIS重定向和重写之间的差异(与重定向相关)

IIS重定向和重写之间的差异(与重定向相关),iis,redirect,url-rewrite-module,Iis,Redirect,Url Rewrite Module,这个问题可能听起来很奇怪,但是如果有一个问题,那么使用重写模块执行重定向肯定是可能的,就像使用重定向模块一样。两者都能够发出永久重定向(301) 有一个请求不同,但它谈到了重写模块被用来纯粹重写而不是重定向。另一种解释很清楚,但似乎没有得到充分的答案 因此,我的问题是:这些模块之间有什么区别?在重定向方面,哪个选项比其他选项更可取?注意:此答案不回答IIS重定向(httpRedirect)与URL重写模块重定向之间的差异,而是回答URL重写模块重定向(Redirect vs Rewrite)之间

这个问题可能听起来很奇怪,但是如果有一个问题,那么使用重写模块执行重定向肯定是可能的,就像使用重定向模块一样。两者都能够发出永久重定向(301)

有一个请求不同,但它谈到了重写模块被用来纯粹重写而不是重定向。另一种解释很清楚,但似乎没有得到充分的答案


因此,我的问题是:这些模块之间有什么区别?在重定向方面,哪个选项比其他选项更可取?

注意:此答案不回答IIS重定向(httpRedirect)与URL重写模块重定向之间的差异,而是回答URL重写模块重定向(Redirect vs Rewrite)之间的差异。

如果您试图将复杂的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
  • 很好的隐藏不友好的网址和搜索引擎优化。mysite.com/article/test-sub/至mysite.com/article.aspx?id=test-sub
  • 通常用于同一站点内的资源
请求处理(重定向):www.mysite.com/abc重定向至www.mysite.com/pqr

  • 客户电话:www.mysite.com/abc
  • URL重写模块看到客户端URL的规则匹配,并给出新的重定向URL
  • 服务器用301和新URL响应,以便客户端调用www.mysite.com/pqr
  • 客户呼叫新URL www.mystite.com/pqr
  • 服务器对新URL作出200 OK的响应。(地址栏显示新URL)
  • 请求处理(重写):www.mysite.com/abc,您希望指向www.mysite.com/pqr

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

  • 谢谢你全面的回答,但这不是我想要的。我甚至强调,我不是在说纯重写,这两个模块都可以用301/302响应。哦,很抱歉,我混淆了IIS重定向模块(httpRedirect)和URL重写模块。我将编辑我的答案,以明确这不是有关2个不同的模块,但URL重写。