您的位置:首页 > 其它

使用【UrlRewritingNet.UrlRewriter】组件重写URL,无后缀,伪静态

2014-06-27 14:51 453 查看
高手跳过,主要给新手看的,来点开场白,今天有人问我做过URL重写没,这个哥们当然做过(呵呵),然后要我教他做,我就和他说了大概的做法,到最后他还是没明白,要我给个Demo,当时我身边又没有,只好去网上帮他找一个,找了半天我觉得网上的有点乱,说了很多种方式,最后找了个说的还比较详细的给他,原文地址:http://www.workyi.com/LookNews/Article-256.html,结果发现上面图X了,他也没看明白,我真的想说哥们你...,没办法,我今天也没什么事就只好帮他做一个,其实我这就是重写一下上面地址的那篇文章。
web.config



<?xml version="1.0"?>
<!--
有关如何配置 ASP.NET 应用程序的详细消息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 -->
<configuration>
<configSections>
<section name="urlrewritingnet"
requirePermission ="true"
type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"  />
</configSections>

<urlrewritingnet
rewriteOnlyVirtualUrls="false"
contextItemsPrefix="QueryString"
defaultPage = "index.aspx"
defaultProvider="RegEx"
xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
<rewrites>

<!--扩展名不变的重写:-->
<!--<add name="RewritePhoto" virtualUrl="^~/index_(\d+).aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/index2.aspx?ID=$1"
ignoreCase="true" />-->

<!--伪静态重写,扩展名为.html等-->
<!--<add name="RewritePhoto" virtualUrl="^~/index_(\d+).html"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/index2.aspx?ID=$1"
ignoreCase="true" />-->

<!--    任意扩展名的重写如:扩展名为.zxjay-->
<!--<add name="RewritePhoto" virtualUrl="^~/index_(\d+).zxjay"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/index2.aspx?ID=$1"
ignoreCase="true" />-->

<!--   无后缀的重写-->
<add name="RewritePhoto" virtualUrl="^~/index_(\d+)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/index2.aspx?ID=$1"
ignoreCase="true" />

<!--还有一种方式 XX/?id=xx-->
<add name="RewritePhoto2" virtualUrl="^~/zufang/"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/index3.aspx"
ignoreCase="true" />
<!--更多重写规则-->
</rewrites>
</urlrewritingnet>

<system.web>
<httpModules>
<add name="UrlRewriteModule"
type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
</httpModules>

<compilation debug="true" targetFramework="4.0"/>
</system.web>

</configuration>


(一)、扩展名不变的重写:

<add name="RewritePhoto" virtualUrl="^~/index_(\d+).aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/index2.aspx?ID=$1"
ignoreCase="true" />


对应的ASPX



<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate><a href='index_<%# Eval("ID") %>.aspx'><%# Eval("title") %> </a></ItemTemplate>
</asp:Repeater>


效果



(二)、伪静态重写,扩展名为.html

IIS配置:网站->属性->目录->配置(G)...->映射->应用程序扩展->添加

可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll

扩展名:.html

动作:限制为 GET,HEAD,POST,DEBUG

脚本引擎:选中

确认文件是否存在:不选



<!--伪静态重写,扩展名为.html等-->
<add name="RewritePhoto" virtualUrl="^~/index_(\d+).html"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/index2.aspx?ID=$1"
ignoreCase="true" />


对应的aspx



<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate><a href='index_<%# Eval("ID") %>.html'><%# Eval("title") %> </a></ItemTemplate>
</asp:Repeater>


效果:



(三)、任意扩展名的重写 如:扩展名为.zxjay,配置和伪静态一样配置

<!--    任意扩展名的重写如:扩展名为.zxjay-->
<add name="RewritePhoto" virtualUrl="^~/index_(\d+).zxjay"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/index2.aspx?ID=$1"
ignoreCase="true" />


aspx



<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate><a href='index_<%# Eval("ID") %>.zxjay'><%# Eval("title") %> </a></ItemTemplate>
</asp:Repeater>


效果



(四)、无后缀的重写



<!--   无后缀的重写-->
<add name="RewritePhoto" virtualUrl="^~/index_(\d+)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/index2.aspx?ID=$1"
ignoreCase="true" />


ASPX



<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate><a href='index_<%# Eval("ID") %>'><%# Eval("title") %> </a></ItemTemplate>
</asp:Repeater>


效果



<!--还有一种方式 XX/?id=xx-->

<add name="RewritePhoto2" virtualUrl="^~/zufang/"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/index2.aspx"
ignoreCase="true" />


ASPX


View Code

效果



除了第一种方式不要配置IIS,因为一般IIS都将.ASPX的后缀配好了,

其他几种方式都要进行下面的配置

IIS配置:网站->属性->目录->配置(G)...->映射->应用程序扩展->添加

可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll

扩展名:.html

动作:限制为 GET,HEAD,POST,DEBUG

脚本引擎:选中

确认文件是否存在:不选

下载Demo
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: