asp.net 伪静态 URL重写的纯代码实现方法
本文导语: 本例要求实现: ShowPlay1.aspx重写到ShowPlay.aspx?vid=1。 具体操作步骤如下: 1、下载本dll,放到网站跟目录下bin目录下。 urlrewriter.dll的下载地址: 1、URL重写urlrewriter.dll组件下载地址(附完整示例代码) 2、微软URL重写组件urlrewriter...
本例要求实现:
ShowPlay1.aspx重写到ShowPlay.aspx?vid=1。
具体操作步骤如下:
1、下载本dll,放到网站跟目录下bin目录下。
urlrewriter.dll的下载地址:
1、URL重写urlrewriter.dll组件下载地址(附完整示例代码)
2、微软URL重写组件urlrewriter.dll下载地址
2、在Web.Config的和添加以下节点:
3、在Web.Config的和添加以下节点:
~/ShowPlay-(d{1,4}).aspx
~/ShowPlay.aspx?vid=$1
4、在网页中添加类似 ShowPlay-1.aspx 的连接 将被重写到 ShowPlay.asp?vid=1
二.实现http://www./ShowPlay1/重写到http://www./ShowPlay.aspx?vid=1
方法与一的步骤相同,需要额外保证:将Default.aspx添加到网站默认主文档,网站目录下要存在ShowPlay1目录 并且ShowPlay1目录下要有Default.aspx.
相应的重写规则应改为
~/ShowPlay-(d{1,4})/Default.aspx
~/ShowPlay.aspx?vid=$1
注意:
1、不能使用Windows身份验证用户权限. 应使用Form验证,在web.config配置为:
2、使用Request.ServerVariables["script_name"]获得的路径仍然是:ShowPlay.asp?vid=1
3、被重写的地址如果回发,重写将失效 显示的地址将是ShowPlay.asp?vid=1
4、后缀名必须为.aspx.如果是其他自定义后缀名,如.net 请在iis将.net映射到aspnet_isapi.dll.这样.net请求才能到达asp.net引擎.
有关urlrewrite伪静态的原理分析,请参考:
http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx?pf=true