修改日期 | 修改人 | 备注 |
2019-12-26 19:50:47[当前版本] | 陈胜涛 | 1.1 |
2019-12-26 17:15:18 | 陈胜涛 | 创建版本 |
2019-12-26 17:13:58 | 陈胜涛 | 创建版本 |
重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
我们在网站建设中,时常会遇到需要网页重定向的情况:
1.网站调整(如改变网页目录结构);
2.网页被移到一个新地址;
3.网页扩展名改变(如应用需要把.php改成.Html或.shtml)。
这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失;再者某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点等。
Windows功能中,启用或关闭Windows功能。如下图:
安装完成之后,IIS的功能视图中,会有“Http重定向”功能按钮。
经过测试,这个Http重定向有很大的 局限性:
(1)在某些版本IIS下不能重定向带端口的网址。
(2 )不支持Post方法。
一般切换域名不带端口可以用该方法。
例如上图:重定向的地址中带5200端口,实际访问中会默认去掉5200端口,造成无法访问。
PS:测试版本Winserver2008R2 IIS7.0,高版本的IIS已经修复该问题
单独安装的Url Rewrite 和 Application Request Routing(ARR),功能更全。
已经在前面的文章中讲过安装方法, 链接 IIS反向代理实现(一)IIS详细配置 。
通过设置如下图, 可以在访问时重定向到新地址。参考设置 链接 I IS反向代理实现(二)反向代理实现实例-公司禅道.
需要注意的配置:操作项 一定要改到“重定向”。
例子1:
上图示例部署服务器切换,服务从149服务器切换到客户的服务器,希望客户保存的书签可以继续访问。
实现了地址栏输入 http://njrgrj.imwork.net:8826/CommandCenter/
最终会跳转到 https://zhyy-uat.crland.com.cn:5200/CommandCenter/
IIS重定向中的状态代码。
HTTP中的301、302、303、307、308 查看原文 https://www.cnblogs.com/amyzhu/p/11763438.html
个人理解,平时常见的重定向是:
301:Permanently Moved,永久 。默认只支持Get方法。对搜索引擎友好,网站推广适用。
302:Found,已找到。表示旧地址的资源仍存在,重定向时临时从A地址跳转到B地址,搜索引擎会抓取新的内容,并继续保存旧的网址。 默认只支持Get方法。网站维护时用,例如临时跳转到一个提示“网站升级维护中”的简单网站。
307:Temporary Redirect,临时。和302类似(但是不会强制Post转Get)。
308:Perma nently Redir ect, 永久重定向 。308与301定义一致,唯一的区别在于,308状态码不允许浏览器将原本为POST的请求重顶到GET请求上.
307和308要求客户端不改变原先的请求方法,对在Location头部中规定的URI进行访问。简单讲就是支持Get和Post等,不会强制Post转Get。
配置时,推荐开发的同事用307/308 代替 302/301,做业务系统迁移用,避免通过原地址Post报错 。