|
.htaccess文件允許我們針對(duì)特定目錄及其子目錄修改一些服務(wù)器設(shè)置,雖然這種類型的配置最好是在服務(wù)器本身配置文件的<Directory>小節(jié)部分處理,但有時(shí)我們根本沒(méi)有權(quán)限訪問(wèn)這個(gè)配置文件,尤其是當(dāng)我們?cè)谝慌_(tái)共享的托管主機(jī)上,大多數(shù)共享主機(jī)服務(wù)商只允許我們以.htaccess方式來(lái)改變服務(wù)器的行為。
.htaccess文件是一個(gè)簡(jiǎn)單的文本文件,注意文件名前的“.”很重要,我們可以用自己喜歡的文本編輯器編輯它,然后上傳到我們的服務(wù)器,將其放在我們想要改變服務(wù)器默認(rèn)行為的目錄下。
通過(guò).htaccess文件我們可以做的事包括:為文件夾設(shè)置密碼保護(hù),創(chuàng)建重定向,調(diào)整php設(shè)置,控制文件緩存,控制服務(wù)器如何處理擴(kuò)展名(例如,我們可以讓一個(gè)HTML文件通過(guò)php模塊運(yùn)行,而不是簡(jiǎn)單的通過(guò)Web服務(wù)器解析它),以及改變文件返回給訪問(wèn)者的方式。下面我開(kāi)始介紹這個(gè)文件最常見(jiàn)的8種用法。
1、禁止對(duì)無(wú)索引文件的目錄進(jìn)行文件列表展示
默認(rèn)情況下,當(dāng)我們?cè)L問(wèn)網(wǎng)站的某個(gè)無(wú)索引文件(如index.html,index.htm或index.php)目錄時(shí),服務(wù)器會(huì)顯示該目錄的文件和子目錄列表,這是非常危險(xiǎn)的,因?yàn)樗赡鼙┞毒W(wǎng)站的內(nèi)部結(jié)構(gòu),也許不小心就將含有敏感信息的文件公之于眾了,為了禁止這種行為,我們可以在網(wǎng)站根目錄創(chuàng)建一個(gè).htaccess文件,內(nèi)容如下:
Options –Indexes
2、創(chuàng)建重定向或改變丟失文件的響應(yīng)狀態(tài)
當(dāng)我們從服務(wù)器請(qǐng)求一個(gè)找不到的文件時(shí),默認(rèn)情況下服務(wù)器會(huì)返回404狀態(tài)碼,瀏覽器和訪問(wèn)者便知道URL指定的位置找不到該文件,但這是一個(gè)通用的消息,沒(méi)有太大的實(shí)際意義,我們希望告訴瀏覽器和訪問(wèn)者更多有用的信息,如:
◆文件被永久移走
狀態(tài)碼301告訴瀏覽器文件已經(jīng)被永久移動(dòng)到另一個(gè)位置,這樣我們就可以通過(guò).htaccess文件實(shí)現(xiàn)重定向了,例如,使用下面的代碼可以將瀏覽器重定向到新的地址:
Redirect 301 /path/from/htaccess/file.html http://www.domain.tld/path/file.html
◆文件被暫時(shí)移走
狀態(tài)碼307告訴瀏覽器文件已經(jīng)被移走,但這是暫時(shí)的,瀏覽器接收到301狀態(tài)碼時(shí)就會(huì)訪問(wèn)新地址,但不用改變文件的鏈接,也不會(huì)為新地址創(chuàng)建緩存(除非它受Cache-Control或過(guò)期頭信息字段控制),瀏覽器每次都會(huì)繼續(xù)請(qǐng)求源地址。
Redirect 307 /path/from/htaccess/file.html http://www.domain.tld/path/file.html
◆文件不存在
狀態(tài)碼410告訴瀏覽器,它請(qǐng)求的文件已經(jīng)從服務(wù)器上永久刪除,和404不一樣,404僅僅表示文件不在這里的意思,而410表示文件不僅不在這里,在其它地方也沒(méi)有。
Redirect 410 /path/from/htaccess/file.html
it知識(shí)庫(kù):Apache .htaccess文件的8個(gè)用法,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。