htaccess文件(或者"分布式配置文件")提供了針對(duì)目錄改變配置的方法,即在一個(gè)特定的文檔目錄中放置一個(gè)包含一個(gè)或多個(gè)指令的文件,以作用于此目錄及其所有子目錄了,此功能主要是放在linux主機(jī)相對(duì)較多了,下面我們來(lái)看看.htaccess設(shè)置緩存與Gzip壓縮配置吧.
在使用Linux主機(jī)中,一般使用的環(huán)境都是Apache+PHP+Mysql 來(lái)使用,其實(shí)跟你使用PHP、Mysql沒(méi)有什么關(guān)系.
關(guān)鍵在于Apache的設(shè)置,一般來(lái)說(shuō)只要 httpd.conf 設(shè)置好了 .htaccess 就能正常使用了,關(guān)于怎么設(shè)置可以百度一下~這不是本文的重點(diǎn).
如何使用 .htaccess 設(shè)置瀏覽器緩存
一般來(lái)講我們網(wǎng)站的圖片文件(jpg,png,gif等)、樣式文件(css)、腳本文件(js) 這些是不會(huì)經(jīng)常更改的,那么我們也沒(méi)有必要讓用戶打開(kāi)瀏覽器每次都重新讀取這些文件。不設(shè)置緩存會(huì)有以下幾點(diǎn)劣勢(shì).
浪費(fèi)帶寬流量,不利于用戶體驗(yàn),還有個(gè)更重要的是搜索引擎對(duì)你網(wǎng)站的友好性,網(wǎng)站響應(yīng)速度快的,往往更能獲得搜索引擎的喜愛(ài).
在.htaccess添加如下設(shè)置即可完成瀏覽器的緩存,代碼如下:
- <IfModule mod_expires.c>
- ExpiresActive On
- ExpiresDefault A600
- ExpiresByType image/x-icon A2592000
- ExpiresByType application/x-javascript A2592000
- ExpiresByType text/css A604800
- ExpiresByType image/gif A2592000
- ExpiresByType image/png A2592000
- ExpiresByType image/jpeg A2592000
- ExpiresByType text/plain A86400
- ExpiresByType application/x-shockwave-flash A2592000
- ExpiresByType video/x-flv A2592000 //Vevb.com
- ExpiresByType application/pdf A2592000
- ExpiresByType text/html A600
- </IfModule>
緩存時(shí)間,這里設(shè)置A2592000表示在瀏覽器中的緩存時(shí)間,2592000秒=30天.
如何使用.htaccess開(kāi)啟Gzip壓縮
我們需要在用戶訪問(wèn)的時(shí)候壓縮文件流進(jìn)行傳輸,這樣可以以較小的文件流傳輸?shù)接脩舻臑g覽器,從而也提高了瀏覽響應(yīng)速度及降低了帶寬流量,我們使用如下設(shè)置即可,在.htaccess添加如下設(shè)置即可完成Gzip的壓縮,代碼如下:
- <ifmodule mod_deflate.c>
- AddOutputFilter DEFLATE html xml php js css
- </ifmodule>
使用.htaccess關(guān)閉FileETag,優(yōu)化響應(yīng)頭文件,如果你對(duì)響應(yīng)頭文件不是很了解,也沒(méi)有用到頭文件驗(yàn)證等方法,那么你可以直接進(jìn)行關(guān)閉設(shè)置,來(lái)提高響應(yīng)的速度,在.htaccess進(jìn)行如下設(shè)置來(lái)關(guān)閉 FileETag.
FileETag none
經(jīng)過(guò)了這些優(yōu)化,想必網(wǎng)站速度會(huì)快了許多,更多的設(shè)置,可以看看其他的.htaccess的相關(guān)文章,或者在本文回復(fù)疑問(wèn).
拓展:.htaccess重定向和url重寫
一個(gè)簡(jiǎn)單的重定向:Redirect 301 ^old.html$ http://localhost/new.html
這是設(shè)置一個(gè)http狀態(tài)碼為301(永久移動(dòng))并把所有訪問(wèn)old.html轉(zhuǎn)向到new.html,使用了正則表達(dá)式來(lái)匹配訪問(wèn)的頁(yè)面,后面的url必須是完整路徑.
Url重寫:
- RewriteEngine on
- RewriteRule ^old.html$ new.html
第一行打開(kāi)重寫引擎,第二行是重寫規(guī)則,這樣用戶訪問(wèn)old.html時(shí)實(shí)際卻是訪問(wèn)的new.html,而且用戶對(duì)此好吧知情,因?yàn)榈刂窓诶镆琅f顯示是old.html.
為了在地址欄顯示新的訪問(wèn)地址,我們可以加個(gè)f標(biāo)志在rewriterule語(yǔ)句里:
RewriteRule ^old.html$ http://hostname/new.html [r=301]
下面是把帶查詢參數(shù)的url重寫成對(duì)搜索引擎友好的url:
- RewriteRule ^products/([^/]+)/([^/]+)/([^/]+) product.php?cat=$1&brand=$2&prod=$3
這條規(guī)則允許訪問(wèn)者以類似這樣的:
url products/turntables/technics/sl1210,
來(lái)訪問(wèn)product.php?cat=turntables&brand=technics&prod=sl1210.
括號(hào)里為一個(gè)單元,分別對(duì)應(yīng)后面的$1,$2,$3,[^/]+ 在原括號(hào)里表示除了/之外的任何一個(gè)或是多個(gè)字符.
自定義錯(cuò)誤頁(yè)面,代碼如下:
ErrorDocument 404"/404.html"
這是定義404頁(yè)面無(wú)法找到的錯(cuò)誤,也可以定義其他錯(cuò)誤代碼的頁(yè)面.
限定訪問(wèn)特點(diǎn)資源,代碼如下:
- <Files"protectedfile.html">
- AuthName"Username and password required"
- AuthUserFile/path/to/.htpasswd
- Require valid-user
- AuthType Basic
- </Files>
保護(hù)protectedfile.html,authName是登陸框的提示信息,authuserfile是.htpasswd文件的路徑.
阻止某些ip訪問(wèn),代碼如下:
- order allow,deny
- deny from 192.168.0.1
- allow from allOrder
告訴apache指令的順序,這里的這個(gè)是先允許后拒絕的,雖然allow from all后出現(xiàn)但是還是在前面生效,拒絕了192.168.0.1的訪問(wèn),也可以按段來(lái)屏蔽訪問(wèn)的,只要只指定前面的幾段就可以類似,192.168.
新聞熱點(diǎn)
疑難解答
圖片精選