.htaccess是什么?.htaccess幾個(gè)簡(jiǎn)單應(yīng)用
.htaccess是什么?
.htaccess叫分布式配置文件,它提供了針對(duì)目錄改變配置的方法——在一個(gè)特定的文檔目錄中放置一個(gè)包含一個(gè)或多個(gè)指令的文件, 以作用于此目錄及其所有子目錄。并且子目錄中的指令會(huì)覆蓋更高級(jí)目錄或者主服務(wù)器配置文件中的指令。一般來(lái)說(shuō),如果你的虛擬主機(jī)使用的是Unix或Linux系統(tǒng),或者任何版本的Apache網(wǎng)絡(luò)服務(wù)器,從理論上講都是支持.htaccess的。
如何建立.htaccess?
在我們使用的windows(瘟到死)主機(jī)上創(chuàng)建.htaccess文件是很困難的。寫文件倒很容易,你只需要在文字編緝器(例如:記事本)里寫下適當(dāng)?shù)拇a。困難的是文件的保存,因?yàn)?htaccess是一個(gè)古怪的文件名,其實(shí)它并沒(méi)有文件名,只有一個(gè)由8個(gè)字母(htaccess)組成的擴(kuò)展名,而在windows系統(tǒng)中這是無(wú)法接受的文件名。因此,這里有3個(gè)方法可以實(shí)現(xiàn)。
方法一:保存文件的時(shí)候?qū)⑽臋n保存成名為“.htaccess” (包括引號(hào))或者h(yuǎn)taccess.txt亦或者1.htaccess。再將其上傳到服務(wù)器上,之后直接使用FTP軟件來(lái)重命名。
方法二:保存文件的時(shí)候選擇文件—>另存為,保存類型選所有文件,然后文件名輸入.htaccess ,這樣就OK啦o(∩_∩)o…。
方法三:直接在你的Unix或Linux虛擬主機(jī)上建立。
.htaccess是什么?.htaccess是在Apache HTTP Server這款服務(wù)器架設(shè)軟件下的一個(gè)對(duì)于系統(tǒng)目錄進(jìn)行各種權(quán)限規(guī)則設(shè)置的一個(gè)文件,存在于Linux操作系統(tǒng)中。比較常見(jiàn)的是定義默認(rèn)首頁(yè)名稱,404頁(yè)面,301轉(zhuǎn)向,等等,還有更多的功能比如偽靜態(tài),限制圖片外鏈,限制下載,密碼保護(hù),去除頁(yè)面廣告等等,還有非常多的功能就不一一列舉。
其實(shí)這些功能大多可以在cPanel控制面板來(lái)進(jìn)行設(shè)置的(相當(dāng)于是.htaccess的圖形化界面)。但對(duì)于高手來(lái)講,cPanel對(duì)于htaccess提供的功能還是太少了點(diǎn),手工編輯才是王道。相對(duì)于國(guó)內(nèi)的虛擬主機(jī),絕大多數(shù)是沒(méi)有這個(gè)功能的
目錄規(guī)則
一般我們將.htaccess文件放置在網(wǎng)站的根目錄,控制所在目錄及所有子目錄,而如果放置在子目錄中,會(huì)受上級(jí)目錄中.htaccess文件影響,是不起任何作用的。
舉幾個(gè)例子,以下部分引用維基百科。
自定義錯(cuò)誤頁(yè)面(直接拷貝即可)
ErrorDocument 404 /error-pages/not-found.html
ErrorDocument 503 /error-pages/service-unavailable.html
————————————————————————-
IP禁止
Order allow,deny
Deny from 123.45.67.8
Deny from 123.123.7
Allow from all
上面能禁止IP地址在123.45.67.8以及IP地址開(kāi)頭為123.123.7的任何人。例如123.123.74.42 就不能得到訪問(wèn)。
————————————————————————-
變更默認(rèn)首頁(yè)
DirectoryIndex homepage.html
————————————————————————-
去除頁(yè)面廣告(不一定適用所有免費(fèi)空間)
LayoutIgnoreURI *.php
LayoutIgnoreURI *.cgi
LayoutIgnoreURI *.htm
LayoutIgnoreURI *.html
LayoutIgnoreURI *.txt
————————————————————————-
頁(yè)面跳轉(zhuǎn)
Redirect page1.html page2.html
如果某人訪問(wèn) http://www.example.com/page1.html,他將被跳轉(zhuǎn)到(帶有HTTP狀態(tài)代碼302)的http://www.example.com/page2.html
————————————————————————-
服務(wù)器內(nèi)置SSI
AddType text/html .shtml
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes
————————————————————————-
防止圖片熱鏈
后面的 .htaccess規(guī)則使用了mod rewrite。
特別域名
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain2\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain3\.com [NC]
RewriteRule \.(gif|jpg)$ http://www.example.com/hotlink.gif [R,L]
非特別域名
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.example.com/hotlink.gif [R,L]
除非 example.com有這個(gè)圖片,瀏覽器才能看到hotlink.gif.
注意:Hotlink熱鏈保護(hù)使用 .htaccess 依賴客戶端在http GET請(qǐng)求中發(fā)送正確的”提交”值。像嘗試使用Windows Media Player發(fā)送空白的提交到.htaccess 來(lái)保護(hù)電影檔案是無(wú)效的。
禁止.htaccess文件被查看
在.htaccess文件中加入如下代碼就可以禁止別人訪問(wèn)你的.htaccess文件:
<Files .htaccess>
order allow,deny
deny from all
</Files>
這個(gè)網(wǎng)上的大部分版本都有錯(cuò)誤,大部分版本丟掉了<Files .htaccess> ,結(jié)果導(dǎo)致所有文件都被禁止訪問(wèn)。如果用了錯(cuò)誤的規(guī)則,所有內(nèi)容都將無(wú)法訪問(wèn)。
同樣道理,如果要禁止其他文件的訪問(wèn),用其他文件名替換就可以了。
關(guān)鍵詞:.htaccess
閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!
- 1
- 1
- 1
- 1
- 1
- 1