默认IIS是不提供URL重写模块的。请注意,不要将IIS默认的HTTP重定向理解为url重写。
url重写,是要从iis的应用市场下载url重写组件才可以的。
URL重写工具的下载地址: 64位版本 32位版本
比如我样实现访问www.demo.com/1.aspx自动跳到新地址www.demo.com/1
规则设置如下:
如下图:
代码:
<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
填写内容 ->
名称:随意
模式:(.*) ;代表全部,任意,无论是否字符都匹配
条件:{HTTPS};https,模式^OFF$,代表https关闭,也就是没有;;;{HTTP_HOST}:填写要匹配的域名,不能其他的域名访问到也重定向至这个https,逻辑分组全部匹配,任意匹配是满足一个条件即可进行下面处理
操作类型:重定向
重定向URL:https://www.example.com/{R:1}
结果相当于 访问 http://www.example.com/……. 重定向至 https://www.example.com/…….
<!-- 注意www.51fsw.com要改为你的实际域名--> <system.webServer> <rewrite> <rewriteMaps> <rewriteMap name="fwf" /> <rewriteMap name="https"> <add key="(.*)" value="" /> </rewriteMap> </rewriteMaps> <rules> <rule name="https" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> <add input="{HTTP_HOST}" pattern="^www\.51fsw\.com$" /> </conditions> <action type="Redirect" url="https://www.51fsw.com/{R:1}" /> </rule> </rules> </rewrite> </system.webServer>
模式:^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指的是服务器的本地,而不是访问者电脑本地,这样使用,可以防止开发太多端口,引起安全问题
模式:(.*)phpf$:代表访问的文件以phpf结尾
目标URL:http://www.example.com/{R:1}.php
结果:访问:http://www.example.com/dir/loginphpf —> http://www.example.com/dir/login.php
这样当后端有其他语言或者不想在前端显示文件后缀时,可以使用这种方式来进行隐藏,phpf可以自己随意更改
021-50391046