在asp.net中重写网址并不适合我

时间:2014-05-05 04:42:12

标签: asp.net c#-4.0 url-rewriting web-config c#-3.0

我使用以下网址和代码将网址更改为自定义名称。它不会返回任何错误,但URL不会更改。

I want the output like this

From : Frm_AdminHome.aspx?MainPage=AdminDashboard&Type=1&Role=r0LnJW8xTBkMh3DZ3ip3Jyt2o98/krx7 
To : Frm_AdminHome/

我的Webconfig代码就在这里。

Frm_AdminHome.aspx?MainPage=AdminDashboard&Type=1&Role=r0LnJW8xTBkMh3DZ3ip3Jyt2o98/krx7 //Query string will be change in every time.

<configSections>
    <section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
  </configSections>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime requestValidationMode="2.0" />

    <httpModules>
      <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
    </httpModules>

  </system.web>

<rewriter>

    <rewrite url="~/Frm_AdminHome/(.+).aspx" to="~/Frm_AdminHome.aspx" />
  </rewriter>

1 个答案:

答案 0 :(得分:0)

重写是一个不会更改请求的网址并传递其他网页的过程。例如,当您需要调用/ Frm_AdminHome,但执行/Frm_AdminHome.aspx?something而不更改URL时,您需要遵循重写规则

<rewrite url="^/Frm_AdminHome/?$" to="/Frm_AdminHome.aspx?something" processing="stop" />

如果您需要将网址从Frm_AdminHome.aspx更改为Frm_AdminHome /,这称为重定向,您需要使用重定向规则

<redirect url="~/Frm_AdminHome.aspx\?.*" to="~/Frm_AdminHome" />

这应该重定向

From : Frm_AdminHome.aspx?MainPage=AdminDashboard&Type=1&Role=r0LnJW8xTBkMh3DZ3ip3Jyt2o98/krx7 
To   : Frm_AdminHome/

有关详细信息,请参阅http://urlrewriter.net/index.php/support

如果上面的配置不起作用且您没有看到任何更改,那么UrlRewriter模块很可能不会处于活动状态。例如,如果您在集成池模式下运行,则可能需要添加

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <!--<modules runAllManagedModulesForAllRequests="true" />-->
    <modules runAllManagedModulesForAllRequests="true">
        <add name="UrlRewriter" 
        type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
    </modules>
</system.webServer>

P.S。

对于IIS 7+,有一个buit-in URL Rewrite Module

P.P.S。

要使用querystring或rawurl

QueryString <%=Request.QueryString.ToString() %> <br />
RawUrl <%=Request.RawUrl %>