常常有些人会问如何隐藏 Querystring,原因是 Querystring 里面包含一些参数不想被使用者知道。以下文章就介绍如何使用 UrlRewriter.NET 套件,来帮助我们实现 Url Rewriting 将 Querystring 隐藏起来。
首先至 Open Source URL Rewriter for .NET / IIS / ASP.NET 下载 UrlRewriter.NET 套件
(点击 Download 图示)
(点击 binaries and source code 连结至 SourceForge 网站准备下载)
(下载 urlrewiternet20rc1b6.zip 最新版本)
下载 urlrewiternet20rc1b6.zip 后,将 UrlRewriterV2\bin\Release\Intelligencia.UrlRewriter.dll 加入参考
设定 Web.config 档案
</configuration> <configSections> <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/> </configSections> <system.web> <httpModules> <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/> </httpModules> </system.web> <rewriter> <rewrite url="~/Books/(\d+)/Default.aspx" to="~/Books.aspx?bookID=$1"/> </rewriter> </configuration>
其中比较注意的是 <rewriter> 区块的部分,url 表示来源网址,to 表示目的网址。举例来说,你的网址是 Books/1234/Default.aspx 时,UrlRewiter 就帮你 Url 转向 Books.aspx?bookID=1234。其中 (\d+) 是一种 Regular Expression(Regex)的表示方法,表示由 0-9 组合而成的字符串组合,$1 则代表 url 符合 Regex 的字符串变量。当你有多组 Regex,则就会有 $1、$2、$3...以此类推。以下我们实地操作,看看如何应用:
撰写 Default.aspx 程序代码,主要是提供接口建立连结,如下,:
1: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 2: 3: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4: 5: <html xmlns="http://www.w3.org/1999/xhtml"> 6: <head runat="server"> 7: <title>Untitled Page</title> 8: </head> 9: <body> 10: <form id="form1" runat="server"> 11: <div> 12: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 13: <asp:Button ID="Button1" runat="server" Text="查询" &#111nclick="Button1_Click" /> 14: </div> 15: </form> 16: </body> 17: </html>
|