首頁 php教程 PHP开发 Apache啟用mod_expires模組

Apache啟用mod_expires模組

Dec 21, 2016 am 11:36 AM

mod_expires可以減少10%左右的重複請求,讓重複的使用者對指定的頁面請求結果都CACHE在本地,根本不向伺服器發出請求。

在使用之前,首先要確認一下”mod_expires”模組是否有啟用.如果是自己安裝Apache來架設網頁主機的話,這裡我們可以透過編輯Apache的”httpd.conf”設定檔來處理.搜尋一下,你可能會找到這麼一行:

#LoadModule expires_module modules/mod_expires.so

複製程式碼

將該行前面的”#”字號刪除,然後將”httpd.conf”啟動Apache來使這個更新生效.

當然如果我們是租用虛擬主機的話,”httpd.conf”設定檔我們一般用戶是接觸不到的,而在網站根目錄裡寫個”.htaccess”設定檔, 我想在運用上相對是較靈活的.”mod_expires”的設定資料除了可以寫在Apache的”httpd.conf”設定檔中,也可以寫在”.htaccess”設定檔裡.

我們知道在使用瀏覽器瀏覽網頁時,瀏覽器會把網頁資料緩存(Cache)下來儲存在本機端,用以加快下回瀏覽相同網頁時不必再重新由網站上下載,進而有加速的效果.使用mod_expires模組來加速網頁瀏覽,這裡所謂的”加速”,其實是利用”mod_expires”的功能,來設定網頁文件的過期時間,加長網頁文件被瀏覽器緩存(Cache)保存的時間.如此一來,只要網頁文件的過期時間未到,瀏覽器就會引用緩存的資料,而不用花時間再去下載網站上的資料.另一方面帶給站長的好處是,可以減少瀏覽者對網站的流量耗用(例如有些虛擬主機有限制網站可使用的流量).

接下來我們直接由範例中來學習吧.
範例一:

 

    ExpiresDefault “access plus 10 days”

    ExpiresByType text/css “access plus 1 second”

s.c>

ExpiresActive On

ExpiresDefault A86400

ExpiresByType image/x-icon A2592000

ExpiresByType application/x-javascript A2592000

ExpiresBpirespun 月2592005 月00

ExpiresByType image/png A604800

ExpiresByType image/jpeg A604800

ExpiresByType text/plain A604800

ExpiresByType application/x-shockwave-flash A604800

ExpiresByType video/x-flv A604800

ExpiresByType video/x-flv A604800

text/html A900

複製程式碼

範例三:

ExpiresActive On

ExpiresDefault A0

# 1 年

? wav)$”>

ExpiresDefault A9030400

# 1 星期

ExpiresDefault A604800

# 3 小時

ExpiresDefault A10800″

來包夾指令可以避免在mod_expires模組沒有啟用的情況下還要去執行.如果mod_expires模組確定已經啟用,那不寫也沒關係.

ExpiresActive On是指啟用mod_expires功能,相對的Off就是關閉功能.

ExpiresDefault指令是設定預設的過期時間.

從範例一和範例二中,各位可以看到關於時間設定的方式有分兩種,一個是文字敘述型,一個是代碼加上秒數型.

文字敘述型:

“access plus 10 days”意指瀏覽時起算10天.依照Apache官方說明文件,過期起算時間有三種,分別是access 、now 以及modification.其中access與now意義相同,而modification指的是網頁文件的」最後編輯時間」.所以如果要以檔桉的最後編輯時間起算,可以寫成這樣,”modification plus 10 days”.而時間的指定也很簡單,就是英文單字(years、months、weeks、days、hours、minutes、seconds).例如,可以寫成這樣,”access plus 1 month 15 days 2 hours”.

代碼加上秒數型: 

A86400意指瀏覽時起算1天.格式是代碼加上秒數.代碼有分兩種,”A”等同”access”,意指瀏覽時起算過期時間.使用代碼”A”比較適合應用在不常變動的網頁文件類型,例如圖片.另外一種代碼是”M”,其意義等同於”modification”,指的是網頁文件的”最後編輯時間”.使用代碼”M”比較適合應用在經常變動的網頁文件類型,例如HTML頁面這類經常更新內容的資料.秒數資料我在文後附上參考資料,可以供各位快速參考.

ExpiresByType指令是依照不同的網頁檔案型態來做期時間設定.
例如,ExpiresByType text/css A2592000,意指網站上的CSS風格檔3天后過期; ExpiresByType image/gif A604800,意指網站上的Gif圖檔在7天後過期.

範例三里,使用了來包夾各型態的網頁文件,而不是使用”ExpiresByType”指令,這也是一種用法.


利用Apache模組mod_expires和mod_headers實作檔快取,Add an Expires header|指定Expires

利用Apache模組mod_expires和modheadersers 實作檔案

利用Apache模組Expimire在使用YSlow的網站速度優化,常常會看到Add an Expires header這一分值很低,搜尋很多但還不知道怎麼該。下面就是答案。

Add an Expires header / 為檔案頭指定Expires
給靜態檔案加上過期標誌。讓瀏覽器或CDN伺服器快取起來,加速圖片和其他靜態檔案的載入。
Expires是瀏覽器Cache機制的一部分,瀏覽器的快取取決於Header中的四個值: Cache-Control, Expires, Last-Modified, ETag。
優化這個選項,要做的是對站內所有的檔案有針對性的設定Cache-Control和Expires.

我們要實現加上過期標誌可以利用apache模組mod_expires和mod_headers。

透過設定.htaccess文件, 可以輕易地依文件類別設定快取時間。對提高網站速度有一定幫助。

1. 利用mod_expires
在.htaccess中加入下列語句:

expiresactive on

#預設所有檔案快取時間設定為300秒
exp.秒

expiresbytype text/html a300

expiresbytype text/plain a300

#css, javascript快取一個小時

expiresbytype text/css a3600

expiresbytype application/x-javascript36000350303030 月icon a2592000

#image類別快取一個星期

expiresbytype image/jpeg a604800

expiresbytype image/gif a604800
expiresbytype image/pngh a604800一個星期lash a604800

expiresbytype video/ x-flv a604800

expiresbytype application/pdf a604800


但有一個問題是我們常用的Apache主機經常不怎麼支援mod_expires,沒有關係,我們用另一個模組使用modheaders。


同樣在.htaccess檔案中加入下列內容可實現快取:

# htm,html,txt類別的檔案快取一個小時

header set cache-control “max-age=3600″

# css, js, swf類別的檔案快取一個星期

header set cache-control “max-age=604800″
# jpg,gif,jpeg,png,ico,flv,pdf等檔案快取一年


header set cache-control “max-age=29030400″




「以下為樣本碼:



「以下為樣本碼:

Header set Cache-Control “max-age=604800, public”

Header set Cache-Control “max-age=18000, public, must-revalidate”



Header set Cache-Control 「max-age=3600, must-revalidate」


 以上就是Apache啟用mod_expires模組的內容,更多相關內容請關注PHP中文網(www.php.cn)!


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1272
29
C# 教程
1252
24
apache中cgi目錄怎麼設置 apache中cgi目錄怎麼設置 Apr 13, 2025 pm 01:18 PM

要在 Apache 中設置 CGI 目錄,需要執行以下步驟:創建 CGI 目錄,如 "cgi-bin",並授予 Apache 寫入權限。在 Apache 配置文件中添加 "ScriptAlias" 指令塊,將 CGI 目錄映射到 "/cgi-bin" URL。重啟 Apache。

怎麼查看自己的apache版本 怎麼查看自己的apache版本 Apr 13, 2025 pm 01:15 PM

有 3 種方法可在 Apache 服務器上查看版本:通過命令行(apachectl -v 或 apache2ctl -v)、檢查服務器狀態頁(http://&lt;服務器IP或域名&gt;/server-status)或查看 Apache 配置文件(ServerVersion: Apache/&lt;版本號&gt;)。

apache怎麼連接數據庫 apache怎麼連接數據庫 Apr 13, 2025 pm 01:03 PM

Apache 連接數據庫需要以下步驟:安裝數據庫驅動程序。配置 web.xml 文件以創建連接池。創建 JDBC 數據源,指定連接設置。從 Java 代碼中使用 JDBC API 訪問數據庫,包括獲取連接、創建語句、綁定參數、執行查詢或更新以及處理結果。

apache80端口被佔用怎麼辦 apache80端口被佔用怎麼辦 Apr 13, 2025 pm 01:24 PM

當 Apache 80 端口被佔用時,解決方法如下:找出佔用該端口的進程並關閉它。檢查防火牆設置以確保 Apache 未被阻止。如果以上方法無效,請重新配置 Apache 使用不同的端口。重啟 Apache 服務。

怎麼查看apache版本 怎麼查看apache版本 Apr 13, 2025 pm 01:00 PM

如何查看 Apache 版本?啟動 Apache 服務器:使用 sudo service apache2 start 啟動服務器。查看版本號:使用以下方法之一查看版本:命令行:運行 apache2 -v 命令。服務器狀態頁面:在 Web 瀏覽器中訪問 Apache 服務器的默認端口(通常為 80),版本信息顯示在頁面底部。

apache怎麼配置zend apache怎麼配置zend Apr 13, 2025 pm 12:57 PM

如何在 Apache 中配置 Zend?在 Apache Web 服務器中配置 Zend Framework 的步驟如下:安裝 Zend Framework 並解壓到 Web 服務器目錄中。創建 .htaccess 文件。創建 Zend 應用程序目錄並添加 index.php 文件。配置 Zend 應用程序(application.ini)。重新啟動 Apache Web 服務器。

apache不能啟動怎麼解決 apache不能啟動怎麼解決 Apr 13, 2025 pm 01:21 PM

Apache 無法啟動,原因可能有以下幾點:配置文件語法錯誤。與其他應用程序端口衝突。權限問題。內存不足。進程死鎖。守護進程故障。 SELinux 權限問題。防火牆問題。軟件衝突。

apache怎麼刪除多於的服務器名 apache怎麼刪除多於的服務器名 Apr 13, 2025 pm 01:09 PM

要從 Apache 中刪除多餘的 ServerName 指令,可以採取以下步驟:識別並刪除多餘的 ServerName 指令。重新啟動 Apache 使更改生效。檢查配置文件驗證更改。測試服務器確保問題已解決。

See all articles