麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > Apache > 正文

Apache指南:.htaccess文件使用手冊

2024-08-27 18:28:58
字體:
來源:轉載
供稿:網友

因為在一個國外的空間的根文件夾下看到這個.htaccess,搞不懂是干什么的,在落伍論壇找到一篇文章,先轉過來放著,以后再慢慢研究,嘿嘿.. 
    apache指南: .htaccess文件 

.htaccess文件提供了針對目錄改變配置的方法。 

  * .htaccess文件 
  * 工作原理和使用方法 
  * 使用.htaccess文件的場合 
  * 指令的生效 
  * 認證舉例 
  * 服務器端包含舉例 
  * cgi舉例 
  * 疑難解答 

top 
.htaccess文件 
相關模塊     相關指令 

  * core 
  * mod_auth 
  * mod_cgi 
  * mod_include 
  * mod_mime 

  * accessfilename 
  * allowoverride 
  * options 
  * addhandler 
  * sethandler 
  * authtype 
  * authname 
  * authuserfile 
  * authgroupfile 
  * require 

top 
工作原理和使用方法 

.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."。 
top 
使用.htaccess文件的場合 

一般情況下,不應該使用.htaccess文件,除非你對主服務器配置文件沒有存取權限。 有一種很常見的誤解,認為用戶認證只能通過.htaccess文件實現,但并不是這樣, 把用戶認證寫在主服務器配置中是完全可行的,而且是一種很好的方法。 

在內容提供者需要針對目錄改變服務器的配置而對服務器系統沒有root權限時, 則應該使用.htaccess文件。如果服務器管理員不愿意頻繁修改配置, 則可以允許用戶通過.htaccess文件自己修改配置,尤其是isp在一個機器上 宿主多個用戶站點,而又希望用戶可以自己改變配置的情況下。 

雖然如此,一般都應該盡可能地避免使用.htaccess文件。 任何希望放在.htaccess文件中的配置,都可以放在主服務器的<directory>段中,而且更高效。 

避免使用.htaccess文件有兩個主要原因。 

首先是性能。 如果allowoverride允許使用.htaccess文件, 則,apache需要在每個目錄中查找.htaccess文件,因此,無論是否真正用到, 允許使用.htaccess文件都會導致性能的下降。 另外,每次請求一個頁面時,都需要讀取.htaccess文件。 

還有,apache必須在所有更高級的目錄中查找.htaccess文件, 使所有有效的指令都起作用(參見how directives are applied.),所以, 如果有對/www/htdocs/example中頁面的請求,apache必須查找以下文件: 

/.htaccess 
/www/.htaccess 
/www/htdocs/.htaccess 
/www/htdocs/example/.htaccess 

而且,對此目錄以外的每個文件訪問,還有4個附加的文件系統訪問,即使這些文件都不存在。 (注意,這可能僅僅發生在 / 允許使用.htaccess文件的情況下,雖然這種情況并不多。) 

其 次是安全。 如此,會允許用戶修改服務器的配置,可能會導致未加限制的修改,請認真考慮是否給予用戶這樣的特權。 但是,如果給予用戶較少的特權而不能滿 足其需要,則會帶來額外的技術支持請求, 所以,必須明確地告訴用戶已經給予他們的權限,說明allowoverride設置的值, 并引導他們參閱相應 的說明,以免日后許多麻煩。 

注意,在/www/htdocs/example目錄下.htaccess文件中放置指令,與, 在主服務器配置文件中<directory /www/htdocs/example>段中放置相同指令, 是等效的。: 

/www/htdocs/example中的.htaccess: 
/www/htdocs/example中.htaccess文件的內容 

addtype text/example .exm 
httpd.conf文件中的段 

<directory /www/htdocs/example> 
addtype text/example .exm 
</directory> 

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

將allowoverride設置為"none"可以完全禁止使用.htaccess文件。 

allowoverride none 
top 
指令的生效 

.htaccess文件中的配置指令作用于.htaccess文件所在的目錄及其所有子目錄, 但是,很重要需要記住的是,其更高級的目錄也可能會有.htaccess文件, 而指令是按查找順序依次生效,所以, 一個特定目錄下的.htaccess文件中的指令可能會覆蓋其更高級目錄中的 .htaccess文件的指令,即, 子目錄中的指令會覆蓋更高級目錄或者主服務器配置文件中的指令。 

例如: 

目錄/www/htdocs/example1中的.htaccess文件有如下內容: 

options +execcgi 

(注意: 必須設置"allowoverride options"以允許在.htaccess文件中使用 "options"指令。) 

在目錄/www/htdocs/example1/example2中的.htaccess文件有如下內容: 

options includes 

由于第二個.htaccess文件的存在,/www/htdocs/example1/example2中 的cgi執行是不允許的,而只允許options includes,它完全覆蓋了之前的設置。 
top 
認證舉例 

如果你為了知道如何認證,直接從這里開始看,有很重要的一點需要注意,有一種常見的誤解, 認為實現密碼認證必須要使用.htaccess文件,其實不是這樣。 把認證指令放在主服務器配置文件的<directory>段中,是一個更好的方法, 而.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。 
top 
服務器端包含舉例 

.htaccess文件的另一個常見用途是允許一個特定目錄的服務器端包含(server side includes), 可以在需要的目錄中放置.htaccess文件,并如下配置: 

options +includes 
addtype text/html shtml 
addhandler server-parsed shtml 

注意,必須同時設置allowoverride options和 allowoverride fileinfo使這些指令生效。 

更詳細的有關服務器端包含的說明,請參見ssi tutorial。 
top 
cgi舉例 

最后,可以通過.htaccess文件允許在特定目錄中執行cgi程序,需按如下配置: 

options +execcgi 
addhandler cgi-script cgi pl 

另外,如下,可以使給定目錄下所有文件被視為cgi程序: 

options +execcgi 
sethandler cgi-script 

注意,必須設置allowoverride options使這些指令生效。 

更詳細的有關cgi編程和配置的說明,請參見cgi tutorial。 
top 
疑難解答 

如果在.htaccess文件中寫入了配置指令但不起作用,可能有多種原因。 

最常見的原因是,allowoverride指令沒有被正確設置, 必須確保沒有對此文件區域設置allowoverride none。有一個很好的測試方法,即, 在.htaccess文件隨便增加點沒用的內容,如果服務器沒有返回了一個錯誤消息, 那么幾乎可以斷定設置了allowoverride none。 

在訪問文檔時,如果收到服務器的出錯消息,應該檢查apache的出錯日志, 可以知道.htaccess文件中哪些指令是不允許使用的,也可能會發現需要糾正的語法錯誤。 


.htaccess文件使用手冊 

- .htaccess文件(或者"分布式配置文件"提供了針對目錄改變配置的方法, 即,在一個特定的文檔目錄中放置一個包含一個或多個指令的文件,以作用于此目錄及其所有子目錄。作為用戶,所能使用的命令受到限制。管理員可以通過apache的allowoverride指令來設置。 

- 子目錄中的指令會覆蓋更高級目錄或者主服務器配置文件中的指令。 

- .htaccess必須以ascii模式上傳,最好將其權限設置為644。 

錯誤文檔的定位 

常用的客戶端請求錯誤返回代碼: 
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 
常見的服務器錯誤返回代碼: 
500 internal server error 

用戶可以利用.htaccess指定自己事先制作好的錯誤提醒頁面。一般情況下,人們可以專門設立一個目錄,例如errors放置這些頁面。然后再.htaccess中,加入如下的指令: 

errordocument 404 /errors/notfound.html 
errordocument 500 /errors/internalerror.html 

一條指令一行。上述第一條指令的意思是對于404,也就是沒有找到所需要的文檔的時候得顯示頁面為/errors目錄下的notfound.html頁面。不難看出語法格式為: 

errordocument 錯誤代碼 /目錄名/文件名.擴展名 

如果所需要提示的信息很少的話,不必專門制作頁面,直接在指令中使用html號了,例如下面這個例子: 

errordocument 401 "<body bgcolor=#ffffff><h1>你沒有權限訪問該頁面,請放棄!</h1></body>" 

文檔訪問的密碼保護 

要利用.htaccess對某個目錄下的文檔設定訪問用戶和對應的密碼,首先要做的是生成一個.htpasswd的文本文檔,例如: 

zheng:y4e7ep8e7eyv 

這里密碼經過加密,用戶可以自己找些工具將密碼加密成.htaccess支持的編碼。該文檔最好不要放在www目錄下,建議放在www根目錄文檔之外,這樣更為安全些。 

有了授權用戶文檔,可以在.htaccess中加入如下指令了: 

authuserfile .htpasswd的服務器目錄 
authgroupfile /dev/null (需要授權訪問的目錄) 
authname enterpassword 
authtype basic (授權類型) 

require user wsabstract (允許訪問的用戶,如果希望表中所有用戶都允許,可以使用 require valid-user) 

注,括號部分為學習時候自己添加的注釋 

拒絕來自某個ip的訪問 

如果我不想某個政府部門訪問到我的站點的內容,那可以通過.htaccess中加入該部門的ip而將它們拒絕在外。 

例如: 


order allow,deny 
deny from 210.10.56.32 
deny from 219.5.45. 
allow from all 

第二行拒絕某個ip,第三行拒絕某個ip段,也就是219.5.45.0~219.2.45.255 

想要拒絕所有人?用deny from all好了。不止用ip,也可以用域名來設定。 

保護.htaccess文檔 

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

<files .htaccess> 
order allow,deny 
deny from all 
</files> 

url轉向 

我們可能對網站進行重新規劃,將文檔進行了遷移,或者更改了目錄。這時候,來自搜索引擎或者其他網站鏈接過來的訪問就可能出錯。這種情況下,可以通過如下指令來完成舊的url自動轉向到新的地址: 

redirect /舊目錄/舊文檔名 新文檔的地址 

或者整個目錄的轉向: 

redirect 舊目錄 新目錄 

改變缺省的首頁文件 

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

directoryindex 新的缺省文件名 

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

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

防止盜鏈 

如果不喜歡別人在他們的網頁上連接自己的圖片、文檔的話,也可以通過htaccess的指令來做到。 

所需要的指令如下: 

rewriteengine on 
rewritecond % !^$ 
rewritecond % !^http://(www/.)?mydomain.com/.*$ [nc] 
rewriterule /.(gif|jpg)$ - [f] 

如果覺得讓別人的頁面開個天窗不好看,那可以用一張圖片來代替: 

rewriteengine on 
rewritecond % !^$ 
rewritecond % !^http://(www/.)?mydomain.com/.*$ [nc] 
rewriterule /.(gif|jpg)$ http://www.mydomain.com/替代圖片文件名 [r,l]


- .htaccess文件(或者"分布式配置文件"提供了針對目錄改變配置的方法, 即,在一個特定的文檔目錄中放置一個包含一個或多個指令的文件, 以作用于此目錄及其所有子目錄。作為用戶,所能使用的命令受到限制。管理員可以通過apache的allowoverride指令來設置。 

- 子目錄中的指令會覆蓋更高級目錄或者主服務器配置文件中的指令。 

- .htaccess必須以ascii模式上傳,最好將其權限設置為644。 

錯誤文檔的定位 

常用的客戶端請求錯誤返回代碼: 
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 
常見的服務器錯誤返回代碼: 
500 internal server error 

用戶可以利用.htaccess指定自己事先制作好的錯誤提醒頁面。一般情況下,人們可以專門設立一個目錄,例如errors放置這些頁面。然后再.htaccess中,加入如下的指令: 

errordocument 404 /errors/notfound.html 
errordocument 500 /errors/internalerror.html 

一條指令一行。上述第一條指令的意思是對于404,也就是沒有找到所需要的文檔的時候得顯示頁面為/errors目錄下的notfound.html頁面。不難看出語法格式為: 

errordocument 錯誤代碼 /目錄名/文件名.擴展名 

如果所需要提示的信息很少的話,不必專門制作頁面,直接在指令中使用html號了,例如下面這個例子: 

errordocument 401 "<body bgcolor=#ffffff><h1>你沒有權限訪問該頁面,請放棄!</h1></body>" 

文檔訪問的密碼保護 

要利用.htaccess對某個目錄下的文檔設定訪問用戶和對應的密碼,首先要做的是生成一個.htpasswd的文本文檔,例如: 

zheng:y4e7ep8e7eyv 

這里密碼經過加密,用戶可以自己找些工具將密碼加密成.htaccess支持的編碼。該文檔最好不要放在www目錄下,建議放在www根目錄文檔之外,這樣更為安全些。 

有了授權用戶文檔,可以在.htaccess中加入如下指令了: 

authuserfile .htpasswd的服務器目錄 
authgroupfile /dev/null (需要授權訪問的目錄) 
authname enterpassword 
authtype basic (授權類型) 

require user wsabstract (允許訪問的用戶,如果希望表中所有用戶都允許,可以使用 require valid-user) 

注,括號部分為學習時候自己添加的注釋 

拒絕來自某個ip的訪問 

如果我不想某個政府部門訪問到我的站點的內容,那可以通過.htaccess中加入該部門的ip而將它們拒絕在外。 
例如: 

order allow,deny 
deny from 210.10.56.32 
deny from 219.5.45. 
allow from all 

第二行拒絕某個ip,第三行拒絕某個ip段,也就是219.5.45.0~219.2.45.255 

想要拒絕所有人?用deny from all好了。不止用ip,也可以用域名來設定。 

保護.htaccess文檔 

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

<files .htaccess> 
order allow,deny 
deny from all 
</files> 

url轉向 

我們可能對網站進行重新規劃,將文檔進行了遷移,或者更改了目錄。這時候,來自搜索引擎或者其他網站鏈接過來的訪問就可能出錯。這種情況下,可以通過如下指令來完成舊的url自動轉向到新的地址: 

redirect /舊目錄/舊文檔名 新文檔的地址 

或者整個目錄的轉向: 

redirect 舊目錄 新目錄 

改變缺省的首頁文件 

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

directoryindex 新的缺省文件名 

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

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

防止盜鏈 

如果不喜歡別人在他們的網頁上連接自己的圖片、文檔的話,也可以通過htaccess的指令來做到。 

所需要的指令如下: 

rewriteengine on 
rewritecond % !^$ 
rewritecond % !^http://(www/.)?mydomain.com/.*$ [nc] 
rewriterule /.(gif|jpg)$ - [f] 

如果覺得讓別人的頁面開個天窗不好看,那可以用一張圖片來代替: 

rewriteengine on 
rewritecond % !^$ 
rewritecond % !^http://(www/.)?mydomain.com/.*$ [nc] 
rewriterule /.(gif|jpg)$ http://www.mydomain.com/替代圖片文件名 [r,l] 

一. 自定義404,401,等錯誤 
1.
首先建立一個名為: .htaccess 
寫入以下內容 
errordocument 401 /err401.html 
errordocument 402 /err402.html 
errordocument 403 /err403.html 
errordocument 404 /err404.html 

其中,401,402,403,404代表錯誤類型, 
后面的err401.html代表其相對應的頁面, 

2.
分別建立名字為: 
err401.html,err402.html......... 
的文件,當出現對應的錯誤的時候, 
就會指向對面的頁面 

3.
傳到根目錄下, 
也就是 public_html 目錄下 
一切就ok了

二. 去掉廣告
建個文件名 .htaccess 的文件, 文件內容如下: 
layoutignoreuri *.php 
layoutignoreuri *.cgi 
layoutignoreuri *.htm 
layoutignoreuri *.html 

將 .htaccess 上傳至空間的 public_html 目錄下,即可去掉廣告! 

注意 *.* 這里..想去那種擴展名的文件,就寫上那種文件的擴展名! 
這個是最簡單的方法,只要在根目錄加這個文件,那么整個網站都不會有廣告!

  • 網站運營seo文章大全
  • 提供全面的站長運營經驗及seo技術!
  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 国产毛片网站 | 精品成人久久久 | 高清国产午夜精品久久久久久 | 最新中文字幕第一页视频 | 一级免费在线视频 | 圆产精品久久久久久久久久久 | 91精品一区二区综合在线 | 91精品免费在线 | 久久精品com| 精品一区二区三区网站 | 美女亚洲 | 美女扒开腿让男生桶爽网站 | 亚洲第一激情 | 久草在线观看福利视频 | 久久久久久久久久久影视 | 一级做a爱片久久毛片a高清 | 激情亚洲一区二区 | 欧美精品日日鲁夜夜添 | 欧美一级做a | 91成人免费网站 | 免费永久看羞羞片网站入口 | 欧美一级免费高清 | 成人在线视频免费观看 | 在线成人免费观看视频 | 国产精品久久久久久久久久东京 | 黄色网址在线播放 | 国产精品久久久久久影院8一贰佰 | 爽爽淫人网 | 欧美日韩1区2区 | 国产免费看 | 国产欧美日韩视频在线观看 | 一区二区三区黄色 | 久久91精品国产91久久yfo | 日本黄色免费片 | 国产亚洲精品视频中文字幕 | 日韩欧美电影一区二区三区 | 欧美性受xxxx人人本视频 | 在线免费日韩 | 成人午夜激情视频 | 久久影院一区二区三区 | 欧美一级高潮片免费的 |