其实URL重写也可以这样简单
2012-08-10 15:22
281 查看
今天用公司框架(具体就不说了),看的是别人的代码,看到一个连接地址,但就是在项目中找不到,突然想到应该是url重写了,然后看文件夹,原来都是IisUrlRewriter.dll和IisUrlRewriter.ini这2个东西在起作用,稍微研究了下,现把如何实现url重写方法贴出来供大家一起学习和交流,不好请勿喷。
下面是转载过来的(转载自:http://nt.discuz.net/doc/default.aspx?cid=36),内容和图比较多就不自己写了:
为了增强Url友好性,方便搜索引擎的收录,现在很多用户都希望将较长的Url带参数程序地址变成较短的程序或静态网页Url地址,例如:
显然,后面的Url更短更友好。
(一) Discuz!NT默认支持的aspx伪Url地址介绍。
Discuz!NT支持一个对用户很有用的优点:默认已经支持伪Url地址,例如:
Discuz!NT能做到这一点,是因为它利用ASP.net的功能接管了对aspx文件的http请求,虚拟主机用户也能同样使用这一特性,从而让自己的论坛Url路径更为友好。
(二) Discuz!NT使用html伪静态地址。
ASP.net默认是不接管html文件请求的,如果用户希望使用html的伪静态网页地址,则需要有IIS管理权限,将html也交给ASP.net接管,或者利用IIS筛选器来进行重定向,我们建议选择后者,因为这样做的效率更高。具体步骤如下:
1) 下载UrlReWriter筛选器Discuz!NT特别配置包
将包内的文件解压缩,包内的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页面。这样就达到重写的目的了,各位看官们看了后是不是觉得比较简单呢?那赶紧去实践下吧。
下面是转载过来的(转载自: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 |
(一) Discuz!NT默认支持的aspx伪Url地址介绍。
Discuz!NT支持一个对用户很有用的优点:默认已经支持伪Url地址,例如:
对于 showforum.aspx?forumid=3&page=4 您可以直接访问 showforum-3-4.aspx 两者返回的内容是完全相同的。 |
(二) Discuz!NT使用html伪静态地址。
ASP.net默认是不接管html文件请求的,如果用户希望使用html的伪静态网页地址,则需要有IIS管理权限,将html也交给ASP.net接管,或者利用IIS筛选器来进行重定向,我们建议选择后者,因为这样做的效率更高。具体步骤如下:
1) 下载UrlReWriter筛选器Discuz!NT特别配置包
点击这里下载 (194KB) |
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页面。这样就达到重写的目的了,各位看官们看了后是不是觉得比较简单呢?那赶紧去实践下吧。
相关文章推荐
- 其实添加数据也可以这样简单——表单的第一步抽象(针对数据访问层)《怪怪设计论: 抽象无处不在 》有感
- 其实添加数据也可以这样简单——表单的第一步抽象(针对数据访问层)《怪怪设计论: 抽象无处不在 》有感
- 其实添加数据也可以这样简单——表单的第三步抽象(针对UI及后置代码)
- 其实添加数据也可以这样简单——表单的第三步抽象(针对UI及后置代码)
- Linux下单网卡配置多IP其实可以这样简单
- 就是这么简单,QQ被盗了可以这样找回来!
- 原来事情可以这样简单
- 项目管理其实可以简单一点——团队建设
- 项目管理其实可以简单一点——项目工期
- 【分享】其实你的VS界面还可以是这样,VS界面美化
- 简单点儿、简单点儿、再简单点儿,其实世界可以不是我们想象的那么复杂
- 快速实现简单高效并可以灵活配置的URL重写方案(附源代码)
- 其实Editplus可以这样用!!
- 项目管理其实可以简单一点——从头开始
- 项目管理其实可以简单一点——项目继续
- 项目管理其实可以简单一点——项目工期
- 快速实现简单高效并可以灵活配置的URL重写方案(附源代码)
- 项目管理其实可以简单一点——项目继续
- 项目管理其实可以简单一点——任务分工
- 原来计算机中的搜索可以这样简单