其实URL重写也可以这样简单

       今天用公司框架(具体就不说了),看的是别人的代码,看到一个连接地址,但就是在项目中找不到,突然想到应该是url重写了,然后看文件夹,原来都是IisUrlRewriter.dll和IisUrlRewriter.ini这2个东西在起作用,稍微研究了下,现把如何实现url重写方法贴出来供大家一起学习和交流,不好请勿喷。

下面是转载过来的(转载自:http://nt.discuz.net/doc/default.aspx?cid=36),内容和图比较多就不自己写了:

为了增强Url友好性,方便搜索引擎的收录,现在很多用户都希望将较长的Url带参数程序地址变成较短的程序或静态网页Url地址,例如:


show.aspx?id=3&page=4

变为
show-3-4.aspx

show-3-4.html


显然,后面的Url更短更友好。

(一) Discuz!NT默认支持的aspx伪Url地址介绍。 

Discuz!NT支持一个对用户很有用的优点:默认已经支持伪Url地址,例如:

对于
showforum.aspx?forumid=3&page=4

您可以直接访问
showforum-3-4.aspx
两者返回的内容是完全相同的。


Discuz!NT能做到这一点,是因为它利用ASP.net的功能接管了对aspx文件的http请求,虚拟主机用户也能同样使用这一特性,从而让自己的论坛Url路径更为友好。

(二) Discuz!NT使用html伪静态地址。

ASP.net默认是不接管html文件请求的,如果用户希望使用html的伪静态网页地址,则需要有IIS管理权限,将html也交给ASP.net接管,或者利用IIS筛选器来进行重定向,我们建议选择后者,因为这样做的效率更高。具体步骤如下:

1) 下载UrlReWriter筛选器Discuz!NT特别配置包

点击这里下载 (194KB)


将包内的文件解压缩,包内的IisUrlRewriter.ini文件中已经默认配置好了Discuz!NT在站点根目录时的Url配置情况

2) 修改IIS设置,添加UrlReWriter筛选器

在IIS中选择您的站点,右击选择属性,添加刚才您解压缩出来的IisUrlRewriter.dll到筛选器中,如图:




3) 根据您的需要修改IisUrlRewriter.ini文件,如果希望自己刚才的操作生效,请点任务栏上的“开始” - “运行” - 运行“iisreset”命令使IIS重新启动,来使筛选器生效。 

经过上面的设置,对
showforum-3-4.html的请求实际上最终变成对showforum.aspx?forumid=3&page=4的请求

说明:

其中IisUrlRewriter.ini是你在里面对要重写的url地址进行配置的文本

比如:RewriteRule     ^/+user/+login.html(\?.*)?$     /user/login.aspx?act=user.login

这个就是重写规则, ^/+user/+login.html(\?.*)?$ 是和 /user/login.aspx?act=user.login等效的,在页面中比如:

<a href="user/login.html">登录</a>实际是访问的/user/login.aspx?act=user.login页面。这样就达到重写的目的了,各位看官们看了后是不是觉得比较简单呢?那赶紧去实践下吧。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值