默认IIS是不提供URL重写模块的。
请注意,不要将IIS默认的HTTP重定向理解为url重写。
安装url重写模块
url重写,是要从iis的应用市场下载url重写组件才可以的。
URL重写工具的下载地址: 64位版本 32位版本
设置规则
比如我样实现访问www.demo.com/1.aspx
自动跳到新地址www.demo.com/1
规则设置如下:
在配置了url重写组件的IIS中,可以直接操作web.config
如下图:
代码:
<system.webServer>
<rewrite>
<rules>
<rule name="test" stopProcessing="true">
<match url="shop/(.*).aspx" />
<action type="Redirect" url="/shop/{R:1}" />
<conditions>
</conditions>
</rule>
</rules>
</rewrite>
</system.webServer>
动态跳转实例
那如果要加动态页面怎么办???莫慌,莫慌,看下图:
原链接:http://en.amusechina.cn/en/ProductDetail-2.0.aspx?proId=1159&cateId=99
现链接:http://en.amusechina.cn/product1159/99.html
三个实例
1、http重定向至https
填写内容 ->
名称:随意
模式:(.*) ;代表全部,任意,无论是否字符都匹配
条件:{HTTPS};https,模式^OFF$,代表https关闭,也就是没有;;;{HTTP_HOST}:填写要匹配的域名,不能其他的域名访问到也重定向至这个https,逻辑分组全部匹配,任意匹配是满足一个条件即可进行下面处理
操作类型:重定向
重定向URL:https://www.example.com/{R:1}
结果相当于 访问 http://www.example.com/....... 重定向至 https://www.example.com/.......
2、重写服务,一般使用为nodejs服务需要实现路径转为根节点访问,这里不写条件,一般条件使用为上面的两种,这里为了截图方便,不予展示
模式:^blog/(.*)
类型:重写
目标URL:http://127.0.0.1:3001/{R:1}
结果:访问:http://www.example.com/blog/index.html --> http://127.0.0.1:3001/inde.html
当然这个127.0.0.1指的是服务器的本地,而不是访问者电脑本地,这样使用,可以防止开发太多端口,引起安全问题
3、重写服务-文件
模式:(.*)phpf$:代表访问的文件以phpf结尾
类型:重写
目标URL:http://www.example.com/{R:1}.php
结果:访问:http://www.example.com/dir/loginphpf --> http://www.example.com/dir/login.php
这样当后端有其他语言或者不想在前端显示文件后缀时,可以使用这种方式来进行隐藏,phpf可以自己随意更改