0

我有这个网络配置:

<?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. 我无法将调试输出打印到屏幕上。

它出什么问题了?

4

4 回答 4

0

我已经按照@CohenA详细的 500 错误消息 ASP + IIS 7.5的回答来帮助了解 500 错误的完整详细信息。我只是把它注释掉,直到我遇到错误,所以我不必记住它。


您是否查看过 ReWrite 问题的答案?不确定你想用 ReWrite 做什么,但也许你想使用规则 #2

< match url="^Construction$" />

或者,您是否错过了重定向上的前导 / ?

< action type="Redirect" url="/Construction.aspx" redirectType="Found"/>

于 2013-02-13T14:04:30.423 回答
0

我只添加到 <configuration> 标签:

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

所以现在它不会出错,但它也不会读取重写

于 2013-11-05T20:53:18.350 回答
0

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

诚然,这是一个延伸,因为我已经有一段时间没有为此研究文档了。

于 2013-02-12T14:42:36.437 回答
0

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

<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>
于 2016-05-09T14:33:57.387 回答