• asp.net中Url重写,解决了Postback后暴露URL的问题

    2007-11-09

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://wanna.blogbus.com/logs/10716287.html

    UrlRewritingNet.UrlRewrite

    在项目中添加这个UrlRewritingNet.UrlRewrite 2.0 Binar引用,再对web.config文件做如下几处(有颜色的部分)配置,就可以实现Url重写,并且解决了微软提供的UrlRewrite解决方案在Postback之后会暴露URL真实链接的问题。

    甚好,甚强大。 

    web.config 文件配置如下。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <configSections>
          <section name="urlrewritingnet"  
                   restartOnExternalChanges="true"
                   requirePermission ="false" 
                   type="UrlRewritingNet.Configuration.UrlRewriteSection,
                       UrlRewritingNet.UrlRewriter"  />
        </configSections>

      <urlrewritingnet
        rewriteOnlyVirtualUrls="true"   
        contextItemsPrefix="QueryString" 
        defaultPage = "default.aspx"
        xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
        <rewrites>
          <add name="Rule1"  virtualUrl="^~/(.*)/Detail(.*).aspx"            
               rewriteUrlParameter="ExcludeFromClientQueryString" 
               destinationUrl="~/Default.aspx?language=$1&amp;id=$2"
               ignoreCase="true" />
          <add name="Rule2"  virtualUrl="^~/test/(.*).aspx"            
               rewriteUrlParameter="ExcludeFromClientQueryString" 
               destinationUrl="~/test.aspx?t1=$1"
               ignoreCase="true" />
          <add name="Rule3"  virtualUrl="^~/noex/(.*)"            
         rewriteUrlParameter="ExcludeFromClientQueryString" 
         destinationUrl="~/noex.aspx?n=$1"
         ignoreCase="true" />

        </rewrites>
      </urlrewritingnet>

      <appSettings/>
      <connectionStrings/>

      <system.web>
        <httpModules>
          <add name="UrlRewriteModule"
              type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter" />
        </httpModules>

            <compilation debug="false" strict="false" explicit="true" />
            <pages>
                <namespaces>
                    <clear />
                    <add namespace="System" />
                    <add namespace="System.Collections" />
                    <add namespace="System.Collections.Specialized" />
                    <add namespace="System.Configuration" />
                    <add namespace="System.Text" />
                    <add namespace="System.Text.RegularExpressions" />
                    <add namespace="System.Web" />
                    <add namespace="System.Web.Caching" />
                    <add namespace="System.Web.SessionState" />
                    <add namespace="System.Web.Security" />
                    <add namespace="System.Web.Profile" />
                    <add namespace="System.Web.UI" />
                    <add namespace="System.Web.UI.WebControls" />
                    <add namespace="System.Web.UI.WebControls.WebParts" />
                    <add namespace="System.Web.UI.HtmlControls" />
                </namespaces>
            </pages>
            <authentication mode="Windows" />
        </system.web>
    </configuration>


    收藏到:Del.icio.us

发表评论

您将收到博主的回复邮件
记住我