iis 如何搭建url 重定向,实现无线端和pc端不同的跳转

Posted ransom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iis 如何搭建url 重定向,实现无线端和pc端不同的跳转相关的知识,希望对你有一定的参考价值。

第一步,下载安装ARR(Application Request Routing), http://www.iis.net/downloads/microsoft/application-request-routing

第二步,简要设置ARR:

安装完成后,IIS里会多出两个图标,分别是Application Request Routing和URL重写。2.0版本(也就是2008或者Win7系统)需要双击ApplicationRequest Routing以后,在右侧Server Proxy Settings里,将代理功能开启,而Win8以后的版本自己默认就开启了:

第三步,设置反向代理:

ARR基本设置好了以后,需要进入一个IIS上搭建好的网站进行URL重写配置,网上给的教程太不好懂了,反向代理可以说分为两种,一种是多域名绑定,一种是采用虚拟目录的形式,下面分别介绍。

1.      多域名绑定:

所谓多域名绑定,其实就是指一个或者多个域名(多个不同域名或一个域名的多个A记录)都指向同一IP,而通过不同的域名访问的效果还不同,如何实现?就需要使用URL重写或者重定向,使用URL重写也就是反向代理的原理。当时图样,不懂反向代理,还在ASP.NET页面里写呢,后来改进在XML里添加……

具体操作如下:

①  打开IIS的URL重写

②  右键->添加规则,选择“入站规则”里的“空白规则”,其他项目忽略,乱点就等着配置失败吧,我可是深有体会!

里面的内容可以按照下图所示填写,“名称”随便写,然后就在匹配URL里填个模式,^(.*)表示处理所有格式的URL字符串

③  把下面的“条件”展开,点击右边的“添加”

④  “编辑条件”里面的项目可以按照下面的图所示的内容填写,“条件输入”填“{HTTP_HOST}”意思是请求的主机名,模式格式为:“^绑定的域名$”,比如我想让用户访问 http://baidu.yuanguozheng.com 时跳转到百度,也就是对百度做反向代理,就写成这样(^baidu.yuanguozheng.com$),前提是填的这个域名必须绑定在你的服务器IP上。

⑤  接下来填写操作,默认重写,不用变,只需要填写URL,后面跟上“{R:1}”意思是把请求的域名后面的参数也带过来,确认后,点击右上角的应用即可完成反向代理配置,然后打开浏览器输入网址即可看到想要的效果。

2.      虚拟目录形式:

虚拟目录形式就类似: http://test.com/doSomething 这样的链接,有些网站采用了MVC模式,看起来像虚拟目录,其实不然,这样的URL重写,在入站规则上只需要改几个地方即可。

①  匹配URL中的模式需要加上你需要使用的类似虚拟目录的字符串,如下图,^和(.*)之间加上虚拟目录URL即可,如shop/,blog/等

②  条件,去掉二级域名,只保留根域名,其他不变

③  往往,这样配置完后可以正常访问网站,但网页链接资源,如CSS、JS、图片等等都有URL问题,所以要配置出站规则,但出站规则不支持动态内容压缩,所以源网站请关闭动态内容压缩功能。出站规则的添加类似入站规则,只是在那个窗口中选出站规则即可。

匹配请按图中所示的方式填写

④  然后添加条件,这时请将“条件输入”填写成“{URL}”,模式格式为。“^虚拟目录名/.*”

⑤  重写也按如下内容填写,意思是在资源的相对URL之前加上“/shop”这样的虚拟目录名,以便获取,但是如果是绝对路径IIS自己就忽略了。应用规则后即可。

---------------------------------------------------------------------------------------

第五步,实现无线端和pc端的跳转

1、添加针对 User agent的规则

2、反向代理常见条件整理:

https://{HTTP_HOST}/{R:1} --{HTTP_HOST} :域名 {R:1}:意思是把请求的域名后面的参数也带过来

{HTTP_USER_AGENT} 用户代理信息

条件名称规则 HTTP/HTTPS_参数,可能有的参数可以在chrome中的netstate中看到

 

以上是关于iis 如何搭建url 重定向,实现无线端和pc端不同的跳转的主要内容,如果未能解决你的问题,请参考以下文章

重定向根 URL - IIS 7

301 使用 IIS 重定向到具有命名锚点的 URL

IIS7 301 从 URL 列表重定向

如何将所有非 www 的 URL 重定向到 https://www。在 IIS 中?

减少链接 URL 重定向 [IIS/Regex/ReWrite]

如何使用IIS7重定向表单的get变量?