URL重写组件:URLRewriter.rar
<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />
</httpModules>
1 在Web.Config的<system.web>和</system.web>添加以下节点:
<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />
</httpModules>
2 在Web.Config的<configuration>和</configuration>添加以下节点:
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/Read(.[0-9]*)\.aspx</LookFor>
<SendTo>~/read.aspx?id=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/Read,(.[0-9]*),(.[0-9]*)\.aspx</LookFor>
<SendTo>
<![CDATA[~/read.aspx?id=$1&SmallSortID=$2]]>
</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
设置完以上两个步骤,就基本可以运行了,其中<RewriterRule/>标签里面就是重写的一个模块,<LookFor/>里面的是重写后的地址,而<SendTo/>则是原地址。大家应该注意到了我写了2组<RewriterRule/>,其中第一组的是给单参数的地址用的,而另一组是给多参数动态文件用的。
用此方法注意:
1.不能使用Windows身份验证用户权限. 应使用Form验证,在web.config配置为:<authentication mode="Forms" />
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引擎.
另外的一些提示:
很多朋友应该看到过类似这样的地址:
http://**.com/2007/07/11/135645/
其实这个也同样的重写,只是这个的使用必须要跟着建立相应的目录,譬如上面的这个地址,你必须要建立READ、2007、07、11、135645这些目录,虽然里面不需要存在文件,但建立还是有必要的
(一)、扩展名不变的重写:
重写规则:
<add name="RewritePhoto" virtualUrl="^~/(\d+).aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Default.aspx?ID=$1"
ignoreCase="true" />
IIS配置:(此配置应该为默认配置,但有的虚拟主机提供商修改了此配置)
网站->属性->目录->配置(G)...->映射->应用程序扩展->扩展名 .aspx ->编辑->"确认文件是否存在"复选框不选
(二)、伪静态重写,扩展名为.html等
重写规则:
<add name="RewritePhoto" virtualUrl="^~/(\d+).html"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Default.aspx?ID=$1"
ignoreCase="true" />
IIS配置:网站->属性->目录->配置(G)...->映射->应用程序扩展->添加
可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
扩展名:.html
动作:限制为 GET,HEAD,POST,DEBUG
脚本引擎:选中
确认文件是否存在:不选
(三)、任意扩展名的重写 如:扩展名为.zxjay
重写规则:
<add name="Rewrite1" virtualUrl="^~/(\d+).zxjay"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Default.aspx?ID=$1"
ignoreCase="true" />
IIS配置:同上
(四)、无后缀的重写
重写规则:
<add name="Rewrite1" virtualUrl="^~/(\d+)/Default.aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Default.aspx?ID=$1"
ignoreCase="true" />
IIS配置:网站->属性->目录->配置(G)...->映射->通配符应用程序映射->插入
可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
确认文件是否存在:不选
(五)、二级域名到多级域名的重写
(注意:由于条件的限制,该规则没有测试,理论上可以实现,如果有错误,请留言指正,谢谢!)
重写规则:
<add name="Rewrite1" virtualUrl="^http\://(.*).xianfen.net/Default.aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Default.aspx?ID=$1"
ignoreCase="true" />
分享到:
相关推荐
ASP.NET C# URL重写 地址重写 伪静态 转HTML
这是一个非常实用的:asp.net Url重写与动态生成静态页面。效果很好
asp.net实现URL的伪静态,重写URL地址
结构以上事实,然后伪静态技术产生了,规范的说就是URL重写技术,他对于ASPX格式支持最好,当然也可以重写HTML格式的文件,但这需要IIS的设置,相对比来说,ASPX格式的更方便,本站就是采用了该URL重写技术,这个...
asp.net url重写 实现伪静态 方便百度 goole 等搜索引擎更容易搜索到您的网站的技术 呵呵 欢迎大家多多来下载 学习一下了 呵呵
UrlReWrite(Url重写或伪静态)完美示例源码,已利用ActionlessForm解决原始地址form回传的问题 例如:/products.aspx?category=books 转换为/products/Books.aspx或/products/Books.html(需要在IIS中建立映射)...
ASP.NET伪静态例子,通过URLRewriter.dll来实现的,供初学者参考
asp.net2.0的URL重写例子 以及伪静态,具体请看这里: http://yangmingsheng.cn/?/_articleshow/117.html
在 ASP.NET 中执行 URL 重写
URL重写 页面静态化 伪静态化,实现页面静态化。
UrlReWrite(Url重写或伪静态)完美示例源码 UrlReWrite(Url重写或伪静态)完美示例源码,已利用ActionlessForm解决原始地址form回传的问题
可以实现重写url地址,及生成新闻静态页面功能
ASP.NET下为静态的实现方法。
1、打开IIS管理,右击站点属性。 2、切换到“主目录“,点“配置“按纽. 3、打开应用程序配置,点”添加“按纽.... 您可能感兴趣的文章:ASP.NET网站伪静态下使用中文URL的方法asp.net不用设置iis实现url重写 类似伪
asp伪静态化/asp静态化/ASPURL重写/IIS Rewrite/RewriteRule/
本文实例总结了ASP.NET实现伪静态网页方法,分享给大家供大家参考之用。具体方法如下: 方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:“http://www.XXXX.com/show-12-34.html...
二是链接地址。所需urlrewrite.dll 首先下载URLRewriter:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi 下载安装后再bin目录下找到URLRewriter.dll文件...
URL重写 例子 源码实例 伪静态 初探 URLRewrite 映射
不会的可以看看,里面有注释,附带数据库