.NET重寫(xiě)URL方法談
對(duì)于.NET重寫(xiě)URL,也就是Rewriter URL相信大家都不太陌生。在這里我們要介紹的也是.NET重寫(xiě)URL方法,希望能為大家打開(kāi)新的思路。
最近小項(xiàng)目要求重寫(xiě)url找了下資料用到了MS的2個(gè)dll,微軟的例子寫(xiě)得太不明顯了。后來(lái)終于改好了。
ActionlessForm.dll------用來(lái)處理回發(fā)
URLRewriter.dll----- 是微軟封裝好了的一個(gè)URL重寫(xiě)組件
添加引用----
具體的使用說(shuō)明請(qǐng)去看
http://msdn.microsoft.com/zh-cn/library/ms972974.aspx#XSLTsection123121120120
比我說(shuō)得好得多。。
具體使用方法:
首先web.config的配置:
- <?xml version="1.0"?>
- <configuration>
- <configSections>
- <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,
- 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>
主要配置的代碼是這些。其他的根據(jù)自己的需要和.net的版本自行添加。
然后Default.aspx,Cover.aspx,新建2個(gè)頁(yè)面
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>無(wú)標(biāo)題頁(yè)</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頁(yè)面
- <h4><a href="javascript:void(0)" onclick="history.go(-1)">返回上一頁(yè)</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);
- }
- }
- }
還要去對(duì)IIS設(shè)置:
這樣的話偽靜態(tài)就可以用了
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll ---這是上面的路徑
瀏覽Default.aspx頁(yè)
ListCategories.aspx --頁(yè)面其實(shí)在服務(wù)器上面是沒(méi)有的。它里面的內(nèi)容是Default.aspx的內(nèi)容,因?yàn)榕渲梦募锩嬖O(shè)置了
寫(xiě)得有點(diǎn)亂。
本例子是和微軟的重寫(xiě)url基本一樣的。算是簡(jiǎn)單化了一點(diǎn)點(diǎn)呵呵。
原文標(biāo)題:.net重寫(xiě)url淺談
鏈接:http://www.cnblogs.com/ret00100/archive/2009/10/12/1581778.html
【編輯推薦】