这个问题可能听起来很奇怪,但是给定一个article,绝对可以使用重写模块来执行重定向,就像重定向模块一样。两者都可以发出永久重定向(301)。有一个问题问的区别,但它谈到了重写模块被用来纯粹 * 重写 * 不 * 重定向 *。另一个post明确了这一点,但似乎没有得到足够的答案。因此,我的问题是:这些模块之间有什么区别?当涉及到重定向时,哪个模块更受欢迎?
fjnneemd1#
**注:这个答案没有回答IIS重定向(httpRedirect)与URL重写模块的重定向之间的差异,而是URL重写模块(重定向与重写)之间的差异。
如果你试图隐藏复杂的URL(与查询字符串),以更友好的URL,然后重写是要走的路,因为浏览器/搜索引擎将始终看到200 OK,并假设内容是来自请求的原始URL。如果您试图向搜索引擎/新URL的用户指示资源的更改,则重定向是要走的路,因为您正在发送301状态代码,说明资源已从原始位置移动到这个新位置。IIS重定向:
IIS重写:
请求处理(REDIRECT):www.mysite.com/abc重定向到www.mysite.com/pqr1.客户来电:www.mysite.com/abc
7gyucuyw2#
重写可以做重定向可以做的一切,但不是相反。认为重定向是一个快速设置,您可以简单轻松地设置单个重定向规则。您只能提供一个通用规则来重定向。然而,重写给予您更多的控制权,让您可以使用正则表达式处理任何给定的请求URL。您还可以设置多个规则来定义自定义设置。例如:我想重定向www.example.com到www.example.com/app1,但如果请求是www.example.com/notThisOne,然后转到www.example.com/app2,你只能使用重写。
www.example.com
www.example.com/app1
www.example.com/notThisOne
www.example.com/app2
2条答案
按热度按时间fjnneemd1#
**注:这个答案没有回答IIS重定向(httpRedirect)与URL重写模块的重定向之间的差异,而是URL重写模块(重定向与重写)之间的差异。
如果你试图隐藏复杂的URL(与查询字符串),以更友好的URL,然后重写是要走的路,因为浏览器/搜索引擎将始终看到200 OK,并假设内容是来自请求的原始URL。
如果您试图向搜索引擎/新URL的用户指示资源的更改,则重定向是要走的路,因为您正在发送301状态代码,说明资源已从原始位置移动到这个新位置。
IIS重定向:
IIS重写:
请求处理(REDIRECT):www.mysite.com/abc重定向到www.mysite.com/pqr
1.客户来电:www.mysite.com/abc
1.服务器用301响应,并为客户端提供新的URL以调用www.mystite.com/pqr
1.客户端调用新URL www.mystite.com/pqr
1.服务器响应200确定新的URL。(地址栏显示新的URL)
请求处理(REWRITE):www.mysite.com/abc您要指向的www.mysite.com/pqr
1.客户来电:www.mysite.com/abc
1.服务器响应200确定为原始URL,但与重写的URL的内容。(地址栏显示原始URL和客户端不知道你是从不同的URL提供内容)
7gyucuyw2#
重写可以做重定向可以做的一切,但不是相反。认为重定向是一个快速设置,您可以简单轻松地设置单个重定向规则。您只能提供一个通用规则来重定向。然而,重写给予您更多的控制权,让您可以使用正则表达式处理任何给定的请求URL。您还可以设置多个规则来定义自定义设置。
例如:我想重定向
www.example.com
到www.example.com/app1
,但如果请求是www.example.com/notThisOne
,然后转到www.example.com/app2
,你只能使用重写。