深入理解PHP的htaccess文件_第1頁(yè)
深入理解PHP的htaccess文件_第2頁(yè)
深入理解PHP的htaccess文件_第3頁(yè)
深入理解PHP的htaccess文件_第4頁(yè)
深入理解PHP的htaccess文件_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——深入理解PHP的htaccess文件深入理解PHP的.htaccess文件

導(dǎo)語(yǔ):PHP是一種通用開(kāi)源腳本語(yǔ)言。語(yǔ)法吸收了C語(yǔ)言、Java和Perl的特點(diǎn),利于學(xué)習(xí),使用廣泛,主要適用于Web開(kāi)發(fā)領(lǐng)域。下面我們來(lái)深入理解PHP的.htaccess文件,夢(mèng)想對(duì)大家有所扶助。

工作原理和使用方法

.htaccess文件分布式配置文件供給了針對(duì)每個(gè)目次變更配置的方法,即在一個(gè)特定的目次中放置一個(gè)包含指令的文件,其中的指令作用于此目次及其全體子目次。

假設(shè)需要使用.htaccess以外的其他文件名,可以用AccessFileName指令來(lái)變更。例如,需要使用.config,那么可以在服務(wù)器配置文件中按以下方法配置:AccessFileName.config

通常,.htaccess文件使用的配置語(yǔ)法和主配置文件一樣。AllowOverride指令按類(lèi)別抉擇了.htaccess文件中哪些指令才是有效的。假設(shè)一個(gè)指令允許在.htaccess中使用,那么在本手冊(cè)的說(shuō)明中,此指令會(huì)有一個(gè)籠罩項(xiàng)段,其中說(shuō)領(lǐng)略為使此指令生效而務(wù)必在AllowOverride指令中設(shè)置的值。

使用.htaccess文件的場(chǎng)合

一般處境下,不理應(yīng)使用.htaccess文件,除非你對(duì)主配置文件沒(méi)有訪問(wèn)權(quán)限。有一種很常見(jiàn)的曲解,認(rèn)為用戶認(rèn)證只能通過(guò).htaccess文件實(shí)現(xiàn),其實(shí)并不是這樣,把用戶認(rèn)證寫(xiě)在主配置文件中是完全可行的,而且是一種很好的方法。

.htaccess文件理應(yīng)被用在內(nèi)容供給者需要針對(duì)特定目次變更服務(wù)器的配置而又沒(méi)有root權(quán)限的處境下。假設(shè)服務(wù)器管理員不容許頻繁修改配置,那么可以允許用戶通過(guò).htaccess文件自己修改配置,尤其是ISP在同一個(gè)機(jī)器上運(yùn)行了多個(gè)用戶站點(diǎn),而又夢(mèng)想用戶可以自己變更配置的處境下。

雖然如此,一般都理應(yīng)盡可能地制止使用.htaccess文件。任何夢(mèng)想放在.htaccess文件中的配置,都可以放在主配置文件的段中,而且更高效。

制止使用.htaccess文件有兩個(gè)主要理由。

首先是性能。假設(shè)AllowOverride啟用了.htaccess文件,那么Apache需要在每個(gè)目次中查找.htaccess文件,因此,無(wú)論是否真正用到,啟用.htaccess都會(huì)導(dǎo)致性能的下降。另外,對(duì)每一個(gè)苦求,都需要讀取一次.htaccess文件。

還有,Apache務(wù)必在全體上級(jí)的目次中查找.htaccess文件,以使全體有效的指令都起作用參見(jiàn)指令的生效,所以,假設(shè)苦求//htdocs/example中的頁(yè)面,Apache務(wù)必查找以下文件:

/.htaccess

//.htaccess

//htdocs/.htaccess

//htdocs/example/.htaccess

總共要訪問(wèn)4個(gè)額外的文件,即使這些文件都不存在。留神,這可能僅僅由于允許根目次/使用.htaccess,雖然這種處境并不多。

其次是安好。這樣會(huì)允許用戶自己修改服務(wù)器的配置,這可能會(huì)導(dǎo)致某些意想不到的修改,所以請(qǐng)專(zhuān)心考慮是否應(yīng)當(dāng)賦予用戶這樣的特權(quán)。但是,假設(shè)賦予用戶較少的特權(quán)而不能得志其需要,那么會(huì)帶來(lái)額外的技術(shù)支持苦求,所以,務(wù)必明確地報(bào)告用戶已經(jīng)賦予他們的權(quán)限,說(shuō)明AllowOverride設(shè)置的值,并引導(dǎo)他們參閱相應(yīng)的說(shuō)明,以免日后生出大量麻煩。

留神,在//htdocs/example目次下的.htaccess文件中放置指令,與在主配置文件中段中放置一致指令,是完全等效的。

把配置放在主配置文件中更加高效,由于只需要在Apache啟動(dòng)時(shí)讀取一次,而不是在每次文件被苦求時(shí)都讀取。

指令的生效

.htaccess文件中的配置指令作用于.htaccess文件所在的目次及其全體子目次,但是很重要的、需要留神的是,其上級(jí)目次也可能會(huì)有.htaccess文件,而指令是按查找依次依次生效的,所以一個(gè)特定目次下的.htaccess文件中的指令可能會(huì)籠罩其上級(jí)目次中的.htaccess文件中的指令,即子目次中的指令會(huì)籠罩父目次或者主配置文件中的指令。

例子://htdocs/example1目次中的.htaccess文件有如下內(nèi)容:Options+ExecCGI

留神:務(wù)必設(shè)置AllowOverrideOptions以允許在.htaccess中使用Options指令

//htdocs/example1/example2目次中的.htaccess文件有如下內(nèi)容:OptionsIncludes

由于其次個(gè).htaccess文件的存在,//htdocs/example1/example2中的CGI執(zhí)行是不允許的,而只允許OptionsIncludes,它完全籠罩了之前的設(shè)置。

將.htaccess合并到主配置文件中

正如在配置段容器中議論的那樣,.htaccess文件能夠籠罩段中對(duì)相應(yīng)目次的設(shè)置,但是也同樣會(huì)被主配置文件中其它類(lèi)型的配置段所籠罩。這個(gè)特性可以用來(lái)強(qiáng)制實(shí)施某些配置,甚至在AllowOverride已經(jīng)許可的處境下。舉個(gè)例子來(lái)說(shuō),為了強(qiáng)迫在.htaccess中遏止腳本執(zhí)行但不限制其它的`處境下,可以這樣:

AllowoverrideAll

Options+IncludesNoExec-ExecCGI

認(rèn)證舉例

假設(shè)你只是為了知道如何認(rèn)證,而直接從這里開(kāi)頭看的,有很重要的一點(diǎn)需要留神,有一種常見(jiàn)的曲解,認(rèn)為實(shí)現(xiàn)密碼認(rèn)證務(wù)必要使用.htaccess文件,其實(shí)是不正確的。把認(rèn)證指令放在主配置文件的段中是一個(gè)更好的方法,而.htaccess文件理應(yīng)僅僅用于無(wú)權(quán)訪問(wèn)主配置文件的時(shí)候。參見(jiàn)上述關(guān)于何時(shí)理應(yīng)與何時(shí)不理應(yīng)使用.htaccess文件的議論。

有此聲明在先,假設(shè)你依舊需要使用.htaccess文件,請(qǐng)持續(xù)看以下說(shuō)明。.htaccess文件的內(nèi)容:

12345務(wù)必設(shè)置AllowOverrideAuthConfig以允許這些指令生效。

服務(wù)器端包含SSI舉例

.htaccess文件的另一個(gè)常見(jiàn)用途是允許一個(gè)特定的目次使用服務(wù)器端包含SSI,可以在需要的目次中放置.htaccess文件,并作如下配置:

Options+Includes

AddTypetext/htmlshtml

AddHandlerserver-parsedshtml

留神,務(wù)必同時(shí)設(shè)置AllowOverrideOptions和AllowOverrideFileInfo以使這些指令生效。

CGI舉例

可以通過(guò).htaccess文件允許在特定的目次中執(zhí)行CGI程序,需要作如下配置:

Options+ExecCGI

AddHandlercgi-scriptcgipl

另外,如下配置可以使給定目次下的全體文件被視為CGI程序:

Options+ExecCGI

SetHandlercgi-script

留神,務(wù)必同時(shí)設(shè)置AllowOverrideOptions和AllowOverrideFileInfo以使這些指令生效。

疑難解答

假設(shè)在.htaccess文件中的某些指令不起作用,可能有多種理由。

最常見(jiàn)的理由是AllowOverride指令沒(méi)有被正確設(shè)置,務(wù)必確保沒(méi)有對(duì)此文件區(qū)域設(shè)置AllowOverrideNone。有一個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論