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