Windows

iis 7 403 和 404 頁面上的 drupal 7 無法遠端工作

  • March 21, 2011

對 IIS 7 來說非常新,所以如果這是一個簡單的,我們深表歉意。

我在 Windows Server 2008 R2 上使用 Webstart 安裝程序安裝了 Drupal 7。Drupal 有自己的自定義 404 和 403 錯誤頁面。當我在伺服器上打開 Internet Explorer 並測試它們時,它們工作正常。

但是,從遠端機器:

  • 測試應該返回自定義 404 頁面(即該頁面不存在)的內容,我在 Firefox 中得到一個空白頁面,當打開友好錯誤消息時 IE 顯示 403“網站拒絕顯示此網頁”,並且關閉時顯示空白頁。
  • 測試應該返回自定義 403 頁面的內容(通過使用未經身份驗證的使用者訪問管理區域)以 IIS 樣式返回“伺服器錯誤。403 - 禁止訪問:訪問被拒絕。”。

我猜這是一個權限問題,但我找不到任何改變。

有任何想法嗎?

謝謝,

弗雷德里克

問題在於您網站的 IIS web.config 文件。

這篇文章幫助我克服了這個問題:http ://www.evanclosson.com/devlog/iis7httperrorsconfigurationonlockdown 。

閱讀有關 drupal 組的這篇文章:http ://groups.drupal.org/node/25421

否則你可以使用我下面的配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <system.webServer>
 <!-- Don't show directory listings for URLs which map to a directory. -->
   <directoryBrowse enabled="false" />
   <rewrite>
     <rules>
       <rule name="Protect files and directories from prying eyes" stopProcessing="true">
         <match url=".(engine|inc|info|install|module|profile|test|po|sh|.sql|postinst.1|theme|tpl(.php)?|xtmpl|svn-base)$|^(code-style.pl|Entries.|Repository|Root|Tag|Template|all-wcprops|entries|format)$" />
         <action type="CustomResponse" statusCode="403" subStatusCode="0" statusReason="Forbidden" statusDescription="Access is forbidden." />
       </rule>
       <rule name="Force simple error message for requests for non-existent favicon.ico" stopProcessing="true">
         <match url="favicon.ico" />
         <action type="CustomResponse" statusCode="404" subStatusCode="1" statusReason="File Not Found" statusDescription="The requested file favicon.ico was not found" />
       </rule>
       <!-- Rewrite URLs of the form 'x' to the form 'index.php?q=x'. -->
       <rule name="Short URLS" stopProcessing="true">
         <match url="^(.*)$" ignoreCase="false" />
         <conditions logicalGrouping="MatchAll">
             <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
             <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
             <add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
         </conditions>
         <action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
       </rule>
     </rules>
   </rewrite>
   <httpErrors>
     &lt;remove statusCode="404" subStatusCode="-1" /&gt;
     &lt;error statusCode="404" prefixLanguageFilePath="" path="/index.php" responseMode="ExecuteURL" /&gt;
     &lt;remove statusCode="403" subStatusCode="-1" /&gt;
     &lt;error statusCode="403" prefixLanguageFilePath="" path="/index.php" responseMode="ExecuteURL" /&gt;
   &lt;/httpErrors&gt;
   &lt;defaultDocument&gt;
     &lt;!-- Set the default document --&gt;
     &lt;files&gt;
       &lt;remove value="index.php" /&gt;
       &lt;add value="index.php" /&gt;
     &lt;/files&gt;
   &lt;/defaultDocument&gt;
 &lt;/system.webServer&gt;
&lt;/configuration&gt;

引用自:https://serverfault.com/questions/248485