Apache服務(wù)器常用.htaccess文件配置
.htaccess文件是Apache服務(wù)器中最常用的一個(gè)配置文件,它負(fù)責(zé)相關(guān)目錄下的網(wǎng)頁配置。通過htaccess文件,可以幫我們實(shí)現(xiàn):網(wǎng)頁301重定向、自定義404錯誤頁面、改變文件擴(kuò)展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置索引入口等功能。
另外,.htaccess手動編輯方法是使用UE或notepad2等高級文本編輯器。如果不方便下載或手動編寫的文件出錯,也非常推薦在線htaccess文本編輯器,目前這款編輯器已經(jīng)非常完善,并且在二次開發(fā)下已經(jīng)增加了很多新功能,簡單易用,完美支持多條件復(fù)雜任務(wù)的htaccess文件智能生成任務(wù)。
1、開啟網(wǎng)站的圖片防盜鏈功能
如果網(wǎng)站的流量有限,那么圖片防盜鏈?zhǔn)欠浅1匾。不僅可以減少流量浪費(fèi),而且可以減輕服務(wù)器負(fù)擔(dān)。開啟圖片防盜鏈功能需要在htaccess文件中加入以下代碼:
- RewriteEngine on
- RewriteCond %{HTTP_REFERER} !^$
- RewriteCond %{HTTP_REFERER} !^http://(www.)?allow1.com(/)?.*$ [NC]
- RewriteCond %{HTTP_REFERER} !^http://(www.)?allow2.com(/)?.*$ [NC]
- RewriteRule .*.(gif|jpg|jpeg|bmp|png)$ [R,NC,L]
上面的代碼中,allow1.com與allow2.com分別是允許訪問網(wǎng)站圖片的域名,后面的baidu.com則是替換成的目標(biāo)圖片地址。上面還包含了圖片文件的后綴參數(shù),可以自行更改。如果通過htaccess在線生成器生成此段代碼,僅僅需要填寫幾個(gè)允許訪問的域名(不帶www與http),然后再填寫好準(zhǔn)備替換的圖片地址。
2、自定義404、500等錯誤返回頁
如果你不希望網(wǎng)站在找不到網(wǎng)頁的時(shí)候出現(xiàn)“404該頁無法顯示”,就試試自己定義一個(gè)找不到網(wǎng)頁的出錯頁面吧!需要在htaccess文件中加入
ErrorDocument 404 /404.htm
前面的404是其錯誤代號,后面的/404.htm是自己定義的404頁面的路徑。需要注意的是,如果這個(gè)404頁面的大小小于512B,則IE會忽略此頁面,也就不會生效了。后面的參數(shù)需要使用網(wǎng)站相對路徑。在htaccess在線生成程序中,請切換到“自定義錯誤頁面”選項(xiàng)卡,然后在“404(未找到)”后面的輸入框中輸入你的錯誤頁面地址即可。在線生成工具還可以處理其它類型的錯誤,以此類推即可。請預(yù)先將404錯誤頁面制作好上傳到網(wǎng)站目錄。
3、屏蔽網(wǎng)站目錄列表
目錄列表是在網(wǎng)站找不到默認(rèn)文件時(shí)的應(yīng)急措施,服務(wù)器將毫無保留的返回一個(gè)當(dāng)前目錄下的所有文件。這將給網(wǎng)站帶來非常大的安全隱患。因此,現(xiàn)在很多程序都會在任何子目錄下面放一個(gè)index.htm文件來避免這種疏漏。但是,通過htaccess文件我們可以徹底的解決這個(gè)問題。
在文件中加入以下代碼:
Options -Indexes
這將徹底關(guān)閉網(wǎng)站的目錄列表功能,但對于網(wǎng)站的正常訪問是沒有任何影響的。如果想顯示文件列表,則只需要將“-”更改為“+”。如果使用htaccess在線生成工具,只需要把“是否在沒有默認(rèn)文檔的目錄顯示文件列表”菜單選擇成“隱藏”即可,程序?qū)⒆詣由上嚓P(guān)代碼。
4、WWW統(tǒng)一網(wǎng)址格式與重定向
在SEO的觀點(diǎn)里認(rèn)為,如果abcd.com與www.abcd.com都能訪問,這對于搜索引擎來說是個(gè)非常不好的體驗(yàn),也很容易造成權(quán)重分散。而我們要做的就是將帶www的網(wǎng)址與不帶www的網(wǎng)址進(jìn)行統(tǒng)一。
我們不建議手動編寫該段代碼,自動生成程序已經(jīng)做了完善的判斷,你只需要切換到“WWW域名重定向”選項(xiàng)卡,在WWW域名重定向后面的地址欄中填入你希望最終使用的域名即可!注意,此處填寫的域名必須為完整網(wǎng)址,比如 http://www.xxxx.org 或者 http://xxxx.org 。程序?qū)⒏鶕?jù)您的輸入自動判斷使用正重定向還是逆重定向。
5、默認(rèn)入口頁面
有些虛擬主機(jī)就是另類,不適用默認(rèn)的文件名,或順序非主流。那么通過以下的代碼就可以自己定義這個(gè)頁面的文件名了。比如index.htm 、default.php等等:
DirectoryIndex index.php
這行代碼將index.php作為默認(rèn)首頁。其他頁面請直接替換例子中的index.php。如果網(wǎng)站有多個(gè)頁面需要作為首頁,請按照DirectoryIndex index.php index2.php的格式編寫文件。此項(xiàng)設(shè)置在htaccess生成器中,僅僅需要你依次填入首頁的文件名即可,非常方便。
6、通過htaccess開啟網(wǎng)站圖片緩存
某些虛擬主機(jī)限制了網(wǎng)站的流量,如果瀏覽器每次都從服務(wù)器下載最常用的圖片文件,將會浪費(fèi)大量的帶寬。因此可以開啟圖片緩存,瀏覽器在緩存過期前將會自動從緩存區(qū)載入圖片文件。此功能在文件中加入以下代碼:
Header set Cache-Control “max-age=3600″
需要注意的是,上面的3600單位為秒,即超時(shí)時(shí)間,上圖中的gif等為圖片文件后綴,表示對這些文件生效。如果使用自動生成工具,為了開啟此選項(xiàng),請將“開啟站點(diǎn)的圖片緩存”選項(xiàng)卡選擇一個(gè)超時(shí)時(shí)間。目前有十分鐘、一小時(shí)、一天等選項(xiàng)可供設(shè)置。
7、固定301、302網(wǎng)頁重定向
由于頁面轉(zhuǎn)移位置造成的404錯誤是我們大家都非常頭痛的問題,但我們只需要做一個(gè)301的重定向就會完全解決這個(gè)問題了。在htaccess文件中加入以下代碼:
Redirect permanent /old.htm http://www.abcd.com/new.htm
前面一個(gè)參數(shù)使用相對路徑,也可以使用目錄名,后一個(gè)參數(shù)必須填寫完整網(wǎng)址。這樣才能生效,并且不出錯誤。在SEO中,搜索引擎也很快就會按照你的設(shè)置,將收錄的網(wǎng)頁更新。
此外,htaccess還可以實(shí)現(xiàn)比如MIME文件類型修改、域名重定向等功能,因此,能充分利用好該文件將能讓你的網(wǎng)站建設(shè)更加得心應(yīng)手。