使用【UrlRewritingNet.UrlRewriter】组件重写URL,无后缀,伪静态
2014-06-27 14:51
453 查看
高手跳过,主要给新手看的,来点开场白,今天有人问我做过URL重写没,这个哥们当然做过(呵呵),然后要我教他做,我就和他说了大概的做法,到最后他还是没明白,要我给个Demo,当时我身边又没有,只好去网上帮他找一个,找了半天我觉得网上的有点乱,说了很多种方式,最后找了个说的还比较详细的给他,原文地址:http://www.workyi.com/LookNews/Article-256.html,结果发现上面图X了,他也没看明白,我真的想说哥们你...,没办法,我今天也没什么事就只好帮他做一个,其实我这就是重写一下上面地址的那篇文章。
web.config
(一)、扩展名不变的重写:
对应的ASPX
效果
(二)、伪静态重写,扩展名为.html
IIS配置:网站->属性->目录->配置(G)...->映射->应用程序扩展->添加
可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
扩展名:.html
动作:限制为 GET,HEAD,POST,DEBUG
脚本引擎:选中
确认文件是否存在:不选
对应的aspx
效果:
(三)、任意扩展名的重写 如:扩展名为.zxjay,配置和伪静态一样配置
aspx
效果
(四)、无后缀的重写
ASPX
效果
<!--还有一种方式 XX/?id=xx-->
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
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
相关文章推荐
- UrlRewritingNet.UrlRewriter.dll 重写url 在虚拟主机上使用
- UrlRewritingNet地址重写组件的使用
- 使用URLRewriter重写后,相同后缀后的真实静态文件无法访问的解决办法
- .NET关于UrlRewritingNet.UrlRewriter 重写伪静态的URL
- asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解
- asp.net使用UrlRewritingNet重写url
- 使用UrlRewriter.NET重写URL
- asp.net中使用UrlRewritingNet重写URL
- UrlRewritingNet.UrlRewriter.dll 重写iis7.5 404错误
- ASP.NET 使用URLRewriter重写二级域名
- 在ASP.Net2.0中使用UrlRewritingNet实现链接重写
- UrlRewritingNet.UrlRewriter.dll 重写iis7.5 404错误
- 利用URLRewriting.dll实现asp.net页面伪静态!(不用安装Rewriter)
- UrlRewritingNet.UrlRewriter组件进行ASP.NET URL
- 在ASP.Net2.0中使用UrlRewritingNet实现链接重写
- Windows 7 中让IIS7支持shtml功能及在ASP.Net中使用UrlRewritingNet实现链接重写
- 在ASP.Net2.0中使用UrlRewritingNet实现链接重写
- 使用UrlRewritingNet重写url以.html的伪静态页面后,真实的.html无法访问的解决方法
- 在ASP.Net2.0中使用UrlRewritingNet实现链接重写
- 使用 URLRewriter 重写 asp.net 网址 经验