Windows
iis 7 403 和 404 頁面上的 drupal 7 無法遠端工作
對 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> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" prefixLanguageFilePath="" path="/index.php" responseMode="ExecuteURL" /> <remove statusCode="403" subStatusCode="-1" /> <error statusCode="403" prefixLanguageFilePath="" path="/index.php" responseMode="ExecuteURL" /> </httpErrors> <defaultDocument> <!-- Set the default document --> <files> <remove value="index.php" /> <add value="index.php" /> </files> </defaultDocument> </system.webServer> </configuration>