linux知識(shí):htaccess |
發(fā)布時(shí)間: 2012/8/11 9:31:15 |
.htaccess文件(或者"分布式配置文件"提供了針對(duì)目錄改變配置的方法, 即,在一個(gè)特定的文檔目錄中放置一個(gè)包含一個(gè)或多個(gè)指令的文件, 以作用于此目錄及其所有子目錄。作為用戶,所能使用的命令受到限制。管理員可以通過Apache的AllowOverride指令來設(shè)置。
- 子目錄中的指令會(huì)覆蓋更高級(jí)目錄或者主服務(wù)器配置文件中的指令。 - .htaccess必須以ASCII模式上傳,最好將其權(quán)限設(shè)置為644。 錯(cuò)誤文檔的定位 常用的客戶端請(qǐng)求錯(cuò)誤返回代碼: 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 常見的服務(wù)器錯(cuò)誤返回代碼: 500 Internal Server Error 用戶可以利用.htaccess指定自己事先制作好的錯(cuò)誤提醒頁面。一般情況下,人們可以專門設(shè)立一個(gè)目錄,例如errors放置這些頁面。然后再.htaccess中,加入如下的指令: ErrorDocument 404 /errors/notfound.html ErrorDocument 500 /errors/internalerror.html 一條指令一行。上述第一條指令的意思是對(duì)于404,也就是沒有找到所需要的文檔的時(shí)候得顯示頁面為/errors目錄下的notfound.html頁面。不難看出語法格式為: ErrorDocument 錯(cuò)誤代碼 /目錄名/文件名.擴(kuò)展名 如果所需要提示的信息很少的話,不必專門制作頁面,直接在指令中使用HTML號(hào)了,例如下面這個(gè)例子: ErrorDocument 401 " 你沒有權(quán)限訪問該頁面,請(qǐng)放棄! " 文檔訪問的密碼保護(hù) 要利用.htaccess對(duì)某個(gè)目錄下的文檔設(shè)定訪問用戶和對(duì)應(yīng)的密碼,首先要做的是生成一個(gè).htpasswd的文本文檔,例如: zheng:y4E7Ep8e7EYV 這里密碼經(jīng)過加密,用戶可以自己找些工具將密碼加密成.htaccess支持的編碼。該文檔最好不要放在www目錄下,建議放在www根目錄文檔之外,這樣更為安全些。 有了授權(quán)用戶文檔,可以在.htaccess中加入如下指令了: AuthUserFile .htpasswd的服務(wù)器目錄 AuthGroupFile /dev/null (需要授權(quán)訪問的目錄) AuthName EnterPassword AuthType Basic (授權(quán)類型) require user wsabstract (允許訪問的用戶,如果希望表中所有用戶都允許,可以使用 require valid-user) 注,括號(hào)部分為學(xué)習(xí)時(shí)候自己添加的注釋 拒絕來自某個(gè)IP的訪問 如果我不想某個(gè)政府部門訪問到我的站點(diǎn)的內(nèi)容,那可以通過.htaccess中加入該部門的IP而將它們拒絕在外。 例如: order allow,deny deny from 210.10.56.32 deny from 219.5.45. allow from all 第二行拒絕某個(gè)IP,第三行拒絕某個(gè)IP段,也就是219.5.45.0~219.2.45.255 想要拒絕所有人?用deny from all好了。不止用IP,也可以用域名來設(shè)定。 保護(hù).htaccess文檔 在使用.htaccess來設(shè)置目錄的密碼保護(hù)時(shí),它包含了密碼文件的路徑。從安全考慮,有必要把.htaccess也保護(hù)起來,不讓別人看到其中的內(nèi)容。雖然可以用其他方式做到這點(diǎn),比如文檔的權(quán)限。不過,.htaccess本身也能做到,只需加入如下的指令: order allow,deny deny from all URL轉(zhuǎn)向 我們可能對(duì)網(wǎng)站進(jìn)行重新規(guī)劃,將文檔進(jìn)行了遷移,或者更改了目錄。這時(shí)候,來自搜索引擎或者其他網(wǎng)站鏈接過來的訪問就可能出錯(cuò)。這種情況下,可以通過如下指令來完成舊的URL自動(dòng)轉(zhuǎn)向到新的地址: Redirect /舊目錄/舊文檔名 新文檔的地址 或者整個(gè)目錄的轉(zhuǎn)向: Redirect 舊目錄 新目錄 改變?nèi)笔〉氖醉撐募?/font> 一般情況下缺省的首頁文件名有default、index等。不過,有些時(shí)候目錄中沒有缺省文件,而是某個(gè)特定的文件名,比如在pmwiki中是pmwiki.php。這種情況下,要用戶記住文件名來訪問很麻煩。在.htaccess中可以輕易的設(shè)置新的缺省文件名: DirectoryIndex 新的缺省文件名 也可以列出多個(gè),順序表明它們之間的優(yōu)先級(jí)別,例如: DirectoryIndex filename.html index.cgi index.pl default.htm 防止盜鏈 如果不喜歡別人在他們的網(wǎng)頁上連接自己的圖片、文檔的話,也可以通過htaccess的指令來做到。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |