.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={GetProperty(Content)}</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:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_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={GetProperty(Content)}</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:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll ---这是上面的路径

  浏览Default.aspx页

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


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3