浅谈.NET重写URL

具体使用方法:

首先web.config的配置:

<?xml version="1.0"?><configuration> <configSections>

<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectioHandler,URLRewriter" />

</configSections>

<RewriterConfig> <Rules> <RewriterRule> <LookFor>~/ListCategories.aspx</LookFor>

<SendTo>~/Default.aspx</SendTo> </RewriterRule> <RewriterRule>

<LookFor>~/(d+).html</LookFor> <SendTo>~/Cover.aspx?id=$1</SendTo> </RewriterRule> </Rules>

</RewriterConfig> <system.web> <httpModules>

<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/> </httpModules>

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

</configuration>

主要配置的代码是这些。其他的根据自己的需要和.net的版本自行添加。

然后Default.aspx,Cover.aspx,新建2个页面

Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">

<title>无标题页</title></head><body> <form id="form1" runat="server">

<div>

<a href="ListCategories.aspx">ListCategories.aspx</a>

<a href="30.html">30.html</a> </div> </form></body><

/html>Cover.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Cover.aspx.cs" Inherits="Cover" %>

<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">

<title>Cover</title></head><body> <skm:form id="form1" runat="server">

<div> Cover页面 <h4><a href="javascript:void(0)" onclick="history.go(-1)">返回上一页</a></h4>

<asp:Button ID="Button1" runat="server" Text="Button" />

</div>

</skm:form></body></html>Cover.aspx.cs:

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;public partial class Cover : System.Web.UI.Page{

protected void Page_Load(object sender, EventArgs e)

{

if (Request.QueryString["id"] == null)

{

Response.End();

}

else

{

int id = Convert.ToInt32(Request.QueryString["id"]); Response.Write(id);

}

}

}

还要去对iis设置:

这样的话伪静态就可以用了

C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll ---这是上面的路径

浏览Default.aspx页

ListCategories.aspx --页面其实在服务器上面是没有的。它里面的内容是Default.aspx的内容,因为配置文件里面设置了

具体使用方法:

首先web.config的配置:

<?xml version="1.0"?><configuration> <configSections>

<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectioHandler,URLRewriter" />

</configSections> <RewriterConfig> <Rules> <RewriterRule> <LookFor>~/ListCategories.aspx</LookFor>

<SendTo>~/Default.aspx</SendTo> </RewriterRule> <RewriterRule>

<LookFor>~/(d+).html</LookFor> <SendTo>~/Cover.aspx?id=$1</SendTo>

</RewriterRule> </Rules> </RewriterConfig>

<system.web> <httpModules> <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>

</httpModules> <compilation debug="true"/>

</system.web>

</configuration>

主要配置的代码是这些。其他的根据自己的需要和.net的版本自行添加。

然后Default.aspx,Cover.aspx,新建2个页面

Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">

<title>无标题页</title></head><body> <form id="form1" runat="server">

<div>

<a href="ListCategories.aspx">ListCategories.aspx</a>

<a href="30.html">30.html</a> </div> </form></body>

</html>Cover.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Cover.aspx.cs" Inherits="Cover" %>

<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">

<title>Cover</title></head><body>

<skm:form id="form1" runat="server"> <div> Cover页面 <h4><a href="javascript:void(0)" onclick="history.go(-1)">返回上一页</a>

</h4>

<asp:Button ID="Button1" runat="server" Text="Button" />

</div>

</skm:form>

</body>

</html>Cover.aspx.cs:


using System;

using System.Collections;

using System.Configuration;using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;public partial class Cover : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if

(

Request.QueryString["id"] == null)

{

Response.End();

}

else

{

int id = Convert.ToInt32(Request.QueryString["id"]); Response.Write(id);

}

}

}

还要去对iis设置:

这样的话伪静态就可以用了

C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll ---这是上面的路径

浏览Default.aspx页

ListCategories.aspx --页面其实在服务器上面是没有的。它里面的内容是Default.aspx的内容,因为配置文件里面设置了

标签: 重写NETURL
------分隔线----------------------------
· 首页 · 注册

百鸣[Baiming.org]欢迎您 百鸣[Baiming.org]欢迎您~