httacces檔案的配置技巧

2022-10-07 00:03:22 字數 3796 閱讀 9176

1.配置.htaccess 自定義錯誤頁 

我要介紹的.htaccess的第乙個應用是自定義錯誤頁面,這將使你可以擁有自己的、個性化的錯誤頁面(例如找不到檔案時),而不是你的服務商提供的錯誤頁或沒有任何頁面。這會讓你的**在出錯的時候看上去更專業。你還可以利用指令碼程式在發生錯誤的時候通知你(例如我使用free webmaster help的php指令碼程式,當找不到頁面的時候自動e-mail給我)。

你所知道的任何頁面錯誤**(像404找不到頁面),都可以通過在.htaccess檔案裡加入下面的文字將其變成自定義頁面:

errordocument errornumber /file.html

舉例來說,如果我的根目錄下有乙個nofound.html檔案,我想使用它作為404 error的頁面:

errordocument 404 /notfound.html

如果檔案不在**的根目錄下,你只需要把路徑設定為:

errordocument 500 /errorpages/500.html

以下是一些最常用的錯誤:

常用的客戶端請求錯誤返回**:

400 - bad request 錯誤請求

401 authorization required需要驗證

403 forbidden禁止

404 not found找不到頁面

405 method not allowed

408 request timed out

411 content length required

412 precondition failed

413 request entity too long

414 request uri too long

415 unsupported media type

常見的伺服器錯誤返回**:

500 internal server error內部伺服器錯誤

接下來,你要做的只是建立乙個錯誤發生時顯示的檔案,然後把它們和.htaccess一起上傳。

使用者可以利用.htaccess指定自己事先製作好的錯誤提醒頁面。一般情況下,人們可以專門設立乙個目錄,例如errors放置這些頁面。然後再.htaccess中,加入如下的指令:

errordocument 404 /errors/notfound.html

errordocument 500 /errors/internalerror.html

一條指令一行。上述第一條指令的意思是對於404,也就是沒有找到所需要的文件的時候得顯示頁面為/errors目錄下的notfound.html頁面。不難看出語法格式為:

errordocument 錯誤** /目錄名/檔名.副檔名

如果所需要提示的資訊很少的話,不必專門製作頁面,直接在指令中使用html號了,例如下面這個例子:

errordocument 401 「你沒有許可權訪問該頁面,請放棄!」

2.配置.htaccess 停示顯示目錄列表 

有些時候,由於某種原因,你的目錄裡沒有index檔案,這意味著當有人在瀏覽器位址列鍵入了該目錄的路徑,該目錄下所有的檔案都會顯示出來,這會給你的**留下安全隱患。

為避免這種情況(而不必建立一堆的新index檔案),你可以在你的.htaccess文件中鍵入以下命令,用以阻止目錄列表的顯示:

options -index程式設計客棧es 

3.配置.htaccess 阻止/允許特定的ip位址

某些情況下,你可能只想允許某些特定ip的使用者可以訪問你的**(例如:只允許使用特定isp的使用者進入某個目錄),或者想封禁某些特定的ip位址(例如:將低階使用者隔離於你的資訊版面外)。當然,這只在你知道你想攔截的ip位址時才有用,然而現在網上的大多數使用者都使用動態ip位址,所以這並不是限制使用的常用方法。

你可以使用以下命令封禁乙個ip位址:

deny from 000.000.000.000

這裡的000.000.000.000是被封禁的ip位址,如果你只指明了其中的幾個,則可以封禁整個網段的位址。如你輸入210.10.56.,則將封禁210.10.56.0~210.10.56.255的所有ip位址。

你可以使用以下命令允許乙個ip位址訪問**:

allow from 000.000.000.000

被允許的ip位址則為000.000.000.000,你可以象封禁ip位址一樣封禁整個網段。

如果你想阻止所有人訪問該目錄,則可以使用:

deny from all

不過這並不影響指令碼程式使用這個目錄下的文件。

4配置.htaccess 替換index檔案

改變預設的首頁檔案

一般情況下預設的首頁檔名有default、index等。不過,有些時候目錄中沒有預設檔案,而是某個特定的檔名,比如在w3sky中是 w3sky.php。這種情況下,要使用者記住檔名來訪問很麻煩。在.htaccess中可以輕易的設定新的預設檔名:

directoryindex 新的預設檔名

也可以列出多個,順序表明它們之間的優先級別,例如:

directoryindex filename.html index.cgi index.pl default.htm

也許你不想一直使用index.htm或index.html作為目錄的索引檔案。舉例來說,如果你的站點使用php檔案,你可能會想使用 index.php來作為該目錄的索引文件。當然也不必侷限於「index」文件,如果你願意,使用.htaccess你甚至能夠設定 foofoo.balh來作為你的索引文件!

這些互為替換的索引檔案可以排成乙個列表,伺服器會從左至右進行尋找,檢查哪個文件在真實的目錄中存在。如果乙個也找不到,它將會把目錄列表顯示出來(除非你已經關閉了顯示目錄檔案列表)。

directoryindex index.php index.php3 messagebrd.pl index.html index.htm

5.配置.htaccess 重定向頁面

.htaccess最有用的功能之一就是將請求重定向到同站內或站外的不同文件。這在你改變了乙個檔名稱,但仍然想讓使用者用舊位址訪問到它時,變的程式設計客棧極為有用。另乙個應用(我發現的很有用的)是重定向到乙個長url,例如在我的時事通訊中,我可以使用乙個很簡短的url來指向我的會員鏈結。以下是乙個重定向檔案的例子:

redirect /location/from/root/file.ext

上述例子中,訪問在root目錄下的名為oldfile.html可以鍵入:

/oldfile.html

訪問乙個舊次級目錄中的檔案可以鍵入:

/old/oldfile.html

你也可以使用.htaccess重定向整個**的目錄。假如你的**上有乙個名為olddirectory的目錄,並且你已經在乙個新** 程式設計客棧y/上建立了與上相同的文件,你可以將舊目錄下所有的檔案做一次重定向而不必一一宣告:

redirect /olddirectory y

這樣,任何指向到站點中/olddirectory目錄的請求都將被重新指向新的站點,包括附加的額外url資訊。例如有人鍵入:

請求將被重定向到:

y/oldfiles/images/image.gif

如果正確使用,此功能將極其強大。

我們可能對**進行重新規劃,將文件進行了遷移,或者更改了目錄。這時候,來自搜尋引擎或者其他**鏈結過來的訪問就可能出錯。這種情況下,可以通過如下指令來完成舊的url自動轉向到新的位址:

redirect /舊目錄/舊文件名 新文件的位址

或者整個目錄的轉向:程式設計客棧

redirect 舊目錄 新目錄

本文標題: .httacces檔案的配置技巧

本文位址:

Apache配置技巧

apache配置技巧 1 如何設 置請求等待時間 在httpd.conf裡面設定 timeout n 其中n為整數,單位是秒。設定這個timeout適用於三種情況 2 如何接收乙個get請求的總時間 接收乙個post和put請求的tcp包之間的時間 tcp包傳輸中的響應 ack 時間間隔 3 如何使...

Apache配置技巧

apache配置技巧 1 如何設 置請求等待時間 在httpd.conf裡面設定 timeout n 其中n為整數,單位是秒。設定這個timeout適用於三種情況 2 如何接收乙個get請求的總時間 接收乙個post和put請求的tcp包之間的時間 tcp包傳輸中的響應 ack 時間間隔 3 如何使...

vim配置技巧

size large b vim開啟多個檔案時,如何像ultraedit那樣在同乙個視窗上的多標籤形式開啟 b size size large b 1 b size 啟動vim的時候可以加引數。比如 im p 這樣就是在標籤中開啟了。h startup options size large b 2 ...