分布式配置檔案 htaccess

2022-09-02 13:03:12 字數 3741 閱讀 4568

工作原理和使用方法

.htaccess檔案(或者"分布式配置檔案"提供了針對目錄改變配置的方法, 即,在乙個特定的文件目錄中放置乙個包含乙個或多個指令的檔案, 以作用於此目錄及其所有子目錄。

說明:如果需要使用.htaccess以外的其他檔名,可以用accessfilename指令來改變。 例如,需要使用.config,則可以在伺服器配置檔案中按以下方法配置:

accessfilename .config

允許放在這些檔案中的指令取決於allowoverride指令, 此指令按類別決定了.htaccess檔案中哪些指令才是有效的。 如果乙個指令允許放在.htaccess檔案中,則,在本手冊的說明中,此指令會有乙個覆蓋段, 其中說明了為使此指令生效而必須在allowoverride指令中設定的值。

例如,本手冊對adddefaultcharset指令的說明表明了, 此指令可以用於.htaccess檔案(見 context一行),而override一行是"fileinfo", 那麼為使.htaccess中的此指令有效,則至少要設定"allowoverride fileinfo"。

例子:

context: server config, virtual host, directory, .htaccess

override: fileinfo

如果不能確定乙個特定的指令是否允許用於.htaccess檔案, 可以查閱手冊中對指令的說明,看在context(「上下文」)行中是否有".htaccess."。

.htaccess可以做大量的事情,包括:資料夾密碼保護、使用者自動重定向、自定義錯誤頁面、改變你的副檔名、封禁特定ip位址的使用者、只允許特定ip位址的使用者、禁止目錄列表,以及使用其他檔案作為index檔案。

建立乙個.htaccess文件

建立.htaccess檔案也許會給你帶來一些困難。寫檔案很容易,你只需要在文字編緝器(例如:寫字板)裡寫下適當的**。真正困難的可能是檔案的儲存,因為.htaccess是乙個古怪的檔名(它事實上沒有檔名,只有乙個由8個字母組成的副檔名),而在一些系統(如windows 3.1)中無法接受這樣的檔名。在大多數的作業系統中,你需要做的是將文件儲存成名為:

「.htaccess」

(包括引號)。如果這也不行,你需要將其先命名為其它名字(例如htaccess.txt),再將其上傳到伺服器上,之後直接使用ftp軟體來重新命名

認證舉例

如果你為了知道如何認證,直接從這裡開始看,有很重要的一點需要注意,有一種常見的誤解, 認為實現密碼認證必須要使用.htaccess檔案,其實不是這樣。 把認證指令放在主伺服器配置檔案的段中,是乙個更好的方法, 而.htaccess檔案應該僅僅用於無權訪問主伺服器配置檔案的時候。 參見上述的使用.htaccess檔案的場合。

有此宣告在先,如果你仍然需要使用.htaccess檔案,請看以下說明。

必須設定"allowoverride authconfig"以允許這些指令生效

.htaccess檔案的內容:

authtype basic

authname "password required"

authuserfile /www/passwords/password.file

authgroupfile /www/passwords/group.file

require group admins

注意,必須設定allowoverride authconfig以允許這些指令生效

更詳細的有關身份識別和認證的說明,請參見authentication tutorial。

自定義錯誤頁

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

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

options -indexes

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

redirect /olddirectory

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

請求將被重定向到:

oldfiles/images/image.gif

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

改變預設的首頁檔案

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

directoryindex 新的預設檔名

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

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

保護.htaccess文件

在使用.htaccess來設定目錄的密碼保護時,它包含了密碼檔案的路徑。從安全考慮,有必要把.htaccess也保護起來,不讓別人看到其中的內容。雖然可以用其他方式做到這點,比如文件的許可權。不過,.htaccess本身也能做到,只需加入如下的指令:

order allow,deny

deny from all

利與弊,雙刃劍

但是,把這個配置放置在伺服器配置檔案中則更加高效,因為只需要在apache啟動時讀取一次, 而不是在有檔案請求時每次都讀取。

將allowoverride設定為"none"可以完全禁止使用.htaccess檔案。

allowoverride none

分布式配置檔案思考

現在分布式已經不是大公司才用到的方案了,小公司也因為其的便利性而使用,但是分布式的使用並不是那麼簡單的,劃分的模式,大小,規格都是分布式在設計的時候需要考慮的。而配置檔案的設計也是其需要考慮的重要的一環。配置檔案 應用需要依託這些資料來導航,保證應用在你所設計的軌道上面執行,並可以在執行時調整它的走...

分布式日誌框架Flume架構及配置檔案編寫

flume的簡單介紹 架構 og ng 核心元件 官網 為什麼要使用flume 主要作用 海量日誌採集 聚合和傳輸的系統 支援在日誌系統中制定各類資料傳送方,使用者收集資料 提供對資料進行簡單處理,可寫到各種資料接收方 文字 hdfs hbase flume可靠性 flume架構 版本 flume ...

sphinx分布式配置

單機配置請參考 搭建coreseek sphinx mmseg3 詳細安裝配置 php之sphinx擴充套件安裝 php呼叫示例 分布式配置很簡單,只需要將區域網內的機器連線即可。vi usr local coreseek etc csft.conf php view plain copy prin...