URL重写页面显示404错误

时间:2013-08-12 10:54:30

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

我正在使用Intelligencia URL重写,但这些页面没有重定向并显示错误404.虽然我在服务器上安装了重写模块。请告诉我我在做什么错误。我的web.config文件在下面..

<?xml version="1.0"?>

<configuration>
   <configSections>
   <section name="rewriter" requirePermission="false"   type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
  </configSections>  
<appSettings/>
<connectionStrings>
    <add name="connStr" connectionString="Data Source=INV-DEV-SQL2K5;Initial Catalog=WidenerPortal;Persist Security Info=True;User ID=widener;Password=widener123a" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<httpModules>
  <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
</httpModules>       
    <!-- 
        Set compilation debug="true" to insert debugging 
        symbols into the compiled page. Because this 
        affects performance, set this value to true only 
        during development.
    -->
    <compilation debug="true"/>
    <!--
        The <authentication> section enables configuration 
        of the security authentication mode used by 
        ASP.NET to identify an incoming user. 
    -->
    <authentication mode="Windows"/>
    <!--
        The <customErrors> section enables configuration 
        of what to do if/when an unhandled error occurs 
        during the execution of a request. Specifically, 
        it enables developers to configure html error pages 
        to be displayed in place of a error stack trace.

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
        <error statusCode="403" redirect="NoAccess.htm" />
        <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>
    -->
</system.web>
  <rewriter>
     <rewrite url="~/Article/(.+)-(.+).aspx" to="~/DynamicPage.aspx?MyTitleId=$2"/>
 </rewriter>  
</configuration>

2 个答案:

答案 0 :(得分:1)

  

首先在你的Linux中添加Intelligencia.UrlRewriter dll引用   asp.net应用程序,而不是web.config文件中的以下设置:

<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="w1" to="WebForm1.aspx" />
    <rewrite url="w2" to="WebForm2.aspx" />
</rewriter>

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

尝试使用新网址调用您的网页,例如webform2.aspx为w2。它会正常工作

答案 1 :(得分:0)

使用它。从其他主机访问时,Mode = RemoteOnly重定向

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">

或访问http://urlrewriter.net/index.php/support/reference/error-handler/error-page