欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

<-
Apache > HTTP Server > 文檔 > 版本2.2
   致謝 | 譯者聲明 | 本篇譯者:金步國 | 本篇譯稿最后更新:2006年1月2日 | 獲取最新版本

自定義錯誤響應(yīng)

Apache可以讓網(wǎng)站管理員自己自定義對一些錯誤和問題的響應(yīng)。

自定義的響應(yīng)可以定義為當(dāng)服務(wù)器檢測到錯誤或問題時才被激活。

如果一個腳本崩潰并產(chǎn)生"500 Server Error"響應(yīng),那么這個響應(yīng)可以被更友好的提示替換或者干脆用重定向語句跳到其他的URL(本地的或外部的)。

top

行為

老式的行為

Apache1.3 會響應(yīng)一些對于用戶沒有任何意義的錯誤或問題信息,而且不會將產(chǎn)生這些錯誤的原因?qū)懭肴罩尽?/p>

新式的行為

服務(wù)器可以被要求作出如下應(yīng)答:

  1. 顯示一些其他的文字以代替硬編碼的信息
  2. 重定向到本地URL
  3. 重定向到一個外部的URL

當(dāng)一些信息可以被傳遞的時候,重定向到另外一個URL就變得很有用。這些信息用于更清楚的解釋和/或記錄一些錯誤或問題產(chǎn)生的原因。

為了達(dá)到這個目的,Apache將定義一些新的類似于CGI環(huán)境變量的環(huán)境變量:

REDIRECT_HTTP_ACCEPT=*/*, image/gif, image/x-xbitmap, image/jpeg
REDIRECT_HTTP_USER_AGENT=Mozilla/1.1b2 (X11; I; HP-UX A.09.05 9000/712)
REDIRECT_PATH=.:/bin:/usr/local/bin:/etc
REDIRECT_QUERY_STRING=
REDIRECT_REMOTE_ADDR=121.345.78.123
REDIRECT_REMOTE_HOST=ooh.ahhh.com
REDIRECT_SERVER_NAME=crash.bang.edu
REDIRECT_SERVER_PORT=80
REDIRECT_SERVER_SOFTWARE=Apache/0.8.15
REDIRECT_URL=/cgi-bin/buggy.pl

請注意"REDIRECT_"這個前綴。

至少會有REDIRECT_URLREDIRECT_QUERY_STRING兩個變量會被傳遞到新的URL(假定這個URL是cgi腳本或者是cgi包含頁面)。其他變量將僅在發(fā)生錯誤或問題之前存在的情況下才存在。如果你的ErrorDocument使用了外部重定向(任何類似于http: 開頭的形式,哪怕它仍指向同一個服務(wù)器),將沒有任何變量被指定。

top

配置

當(dāng)對ErrorDocument進行了相應(yīng)的設(shè)置后,將可以在.htaccess文件中使用AllowOverride指令。

以下是一些示例...

ErrorDocument 500 /cgi-bin/crash-recover
ErrorDocument 500 "Sorry, our script crashed. Oh dear"
ErrorDocument 500 http://xxx/
ErrorDocument 404 /Lame_excuses/not_found.html
ErrorDocument 401 /Subscription/how_to_subscribe.html

語法如下:

ErrorDocument <3位錯誤代碼> <action>

<action>可以代表:

  1. 用于顯示的用雙引號(")界定的文字。雙引號之間的所有文字都將被顯示,但雙引號本身不會被顯示
  2. 作為重定向目的外部URL
  3. 作為重定向目的本地URL
top

自定義錯誤響應(yīng)與重定向

Apache重定向到URL的行為已經(jīng)進行了修改,以便可以在腳本/服務(wù)器端包含頁面加入額外的環(huán)境變量。

老式的行為

標(biāo)準(zhǔn)CGI變量對于重定向的目的腳本來說是可見的。但沒有說明重定向的來源。

新式的行為

一批新的環(huán)境變量將被初始化并提供給重定向的目標(biāo)腳本。每個新變量都有一個"REDIRECT_"前綴。REDIRECT_* 環(huán)境變量由重定向之前的CGI環(huán)境變量創(chuàng)建而來,并被加上了"REDIRECT_"前綴。比如說,HTTP_USER_AGENT變成了REDIRECT_HTTP_USER_AGENT 。在這些新變量之外,Apache還將定義REDIRECT_URLREDIRECT_STATUS來幫助腳本確定重定向的來源。重定向的源URL和目的URL都能被記錄到訪問日志中。

如果ErrorDocument指定了一個到本地CGI腳本的重定向,該腳本應(yīng)當(dāng)在它的輸出中包含一個"Status:"頭字段以確保將導(dǎo)致調(diào)用它的錯誤條件始終返回客戶端。舉例來說,一個Perl ErrorDocument腳本可能包含如下內(nèi)容:

...
print "Content-type: text/html\n";
printf "Status: %s <中斷條件>\n", $ENV{"REDIRECT_STATUS"};
...

如果該腳本專門用于處理一個特定的錯誤條件,比如:404 Not Found ,它就可以使用特定的代碼和錯誤文本進行替代。

需要注意的是如果應(yīng)答包含一個"Location:"頭(為了進行一個客戶端重定向),腳本必須發(fā)出一個適當(dāng)?shù)?Status:"頭(比如:302 Found)。否則"Location:"頭可能無效。