htaccess的基本用法與介紹

2022-01-11 04:50:17 字數 3076 閱讀 3962

●自定義錯誤頁

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

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

errordocument errornumber /file.html

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

errordocument 404 /notfound.html

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

errordocument 500 /errorpages/500.html

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

401 – authorization required 需要驗證

400 – bad request 錯誤請求

403 – forbidden 禁止

500 – internal server error 內部伺服器錯誤

404 – wrong page 找不到頁面

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

●.htaccess命令

1、禁止顯示目錄列表

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

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

目錄列表的顯示:

options -indexes

2、阻止/允許特定的ip位址

某些情況下,你可能只想允許某些特定ip的使用者可以訪問你的**(例如:只允許使用特定isp的使用者進入某個目錄),或者想封禁某些特定的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

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

3、替換index檔案

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

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

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

4、重定向(rewrite)

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

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

/oldfile.html

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

/old/oldfile.html

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

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

請求將被重定向到:

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

二、.htaccess檔案的書寫

在**根目錄下建立乙個檔案,名稱是.htaccess,書寫方式:

rewriteengine on  #開啟重寫

rewriterule ^/$ index.php  #表示用「/」就可以訪問index.php

rewriterule ^about_(d*)/$ about/about.php?id=$1  #表示可以使用about_22/訪問到about/about.php?id=22頁面。注意$前面的「/」

rewriterule ^about_(d*).html$ about/about.php?id=$1  #表示可以使用about_22.html訪問到about/about.php?id=22頁面rewriterule ^news_(d*)_(d*).html$ news/news.php?id=$1&page=$2  #表示可以使用news_11_2.html訪問到news/news.php?id=11&page=2頁面。$1表示第乙個引數,$2表示第二個引數

從上面可以看出,如果我們有下面的鏈結

那麼我們訪問到的頁面與使用下面訪問的頁面一樣

其實,用前一種訪問方式最終還是會隱式轉換成後一種方式,只是在位址列不顯示罷了

switch的基本用法與break

一 switch的基本用法 switch語句是多分支選擇語句,用來實現多分支選擇結構。它的一般形式如下 switch 表示式 其中 1 switch後面的括號內的 表示式 結果可以是整形值,也可以是字元型別的資料。2 當switch表示式的值與某乙個case語句中的常量表示式的值相同時,就執行這個c...

NSURLSession的介紹與基本用法

對比 nsurlconnection中的存在很多問題,例如 nsurlconnection是ios2.0推出的古老而又經典的網路解決方案。複雜的網路請求需要使用 進行實現。方式預設在主線程工作。只提供了start cancel方法,不能暫停。在使用多執行緒時需要使用執行迴圈。nsurlsession...

Python set 的理解與基本用法

集合 set 是乙個無序的不重複元素序列。可以使用大括號 或者set 函式建立集合。class set iterable 引數 iterable 可迭代物件物件 返回值 新的set集合物件 1 確定性 2 無序性 3 唯一性 無重複性 x set runoob y set google x,y se...