GoDaddy Web.Config URL重写不起作用

时间:2013-02-12 14:34:38

标签: .net debugging url-rewriting web-config

我有这个网络配置:

<?xml version="1.0"?>

<configuration>
  <configSections>
  </configSections>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
    <!--maxRequestLength = maximum upload size =- 4096KB = 4MB-->
    <httpRuntime maxRequestLength="409600000"/>
  </system.web>

  <system.webServer>
    <rewrite>
      <rules>
        <!--The following rule will only work when published-->
        <rule name="Construction" stopProcessing="true">
          <match url="Construction\.aspx" negate="true"/>
          <conditions>
            <!-- dont ignore my own ip -->
            <add input="{REMOTE_ADDR}" pattern="XXX.XXX.XXX.XXX" negate="true"/>
          </conditions>
          <action type="Redirect" url="Construction.aspx" redirectType="Found"/>
        </rule>
      </rules>
    </rewrite>
  </system.webServer>

</configuration>

它适用于本地计算机上的IIS,但在其他计算机上,我最终遇到以下问题:

  1. 包含rewrite部分时出现500错误。当我删除它一切正常。
  2. 我无法将调试输出打印到屏幕上。
  3. 它出了什么问题?

4 个答案:

答案 0 :(得分:0)

在我使用rewrite的情况下,我没有在match的url属性中转义句点。你试过<match url="^Construction.aspx$" negate="true"/>吗?

不可否认,这是一段时间,因为我已经花了一段时间才开始研究这个文档。

答案 1 :(得分:0)

我已经按照@CohenA Detailed 500 error message, ASP + IIS 7.5的回答来帮助解决500个错误的完整细节。我只是留下它注释掉,直到我遇到错误,所以我不必记住它。


您是否因为重写问题而审核了this answer?不确定你想用ReWrite做什么,但也许你想使用规则#2

  

&LT; match url =“^ Construction $”/&gt;

或者,您是否错过了ReDirect上的领先/?

  

&LT; action type =“Redirect”url =“/ Construction.aspx”redirectType =“Found”/&gt;

答案 2 :(得分:0)

我只是加入了&lt;配置&gt;标签:

<configSections>
      <sectionGroup name="system.webServer">
           <sectionGroup name="rewrite">
                <section name="rewriteMaps" overrideModeDefault="Allow" />
                <section name="rules" overrideModeDefault="Allow" />
           </sectionGroup>
     </sectionGroup>
</configSections>

所以现在它没有错误输出,但它也没有读取重写

答案 3 :(得分:0)

您可以尝试以下配置。这有重写块,它将来到该文件夹​​的请求重定向到index.php页面,并且还将输出详细错误而不是自定义/通用错误页面。这是在托管IIS 8.5的Godaddy Windows上测试的。希望这有帮助!

<configuration>
 <system.webServer>
    <httpErrors errorMode="Detailed"></httpErrors>
    <asp scriptErrorSentToBrowser="true"></asp>
    <rewrite>
     <rules>
      <rule name="your rule" stopProcessing="true">
       <match url="(.*)$"  ignoreCase="false" />
       <conditions>        
        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />        
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />        
       </conditions> 
       <action type="Rewrite" url="index.php?request={R:1}"  appendQueryString="true" />
      </rule>
     </rules>
    </rewrite>
  </system.webServer>
  <system.web>
    <customErrors mode="Off"></customErrors>
    <compilation debug="true"></compilation>
  </system.web>
</configuration>