大家都知道頁面載入速度對部落格流量有非常重要的影響。最近越來越多人也在討論頁面載入速度很可能成為谷歌和其他搜尋引擎一個重要的 SEO 因素。

目前.htaccess 檔案的主要問題是 RewriteCond 指令性地檢查磁碟檔案是否存在,就算根本不需要檢查,每一次訪問磁碟都增加了頁面載入時間。

# WordPress 開始

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# WordPress 結束

當前的 WordPress .htaccess 根本就沒有最佳化。在 Webmaster World 的一篇帖子上,Mod_Rewrite/.htaccess 的專家 Jim Morgan 建議大家用下面的.htaccess 檔案取代原來的檔案:

# WordPress 開始
RewriteEngine on
#
#除非你在此之前已經設定了不同的 RewriteBase
#你可以刪除或不註釋以下程式碼
# RewriteBase 指令:
RewriteBase /
#
#如果這個請求是針對“/” 或者是已經寫入到 WP 中了
RewriteCond $1 ^(index.php)?$ [OR]
#或者如果這個請求是針對 image, css, 或 js 檔案
RewriteCond $1 .(gif|jpg|css|js|ico)$ [NC,OR]
#如果 URL 指向存在的檔案
RewriteCond %{REQUEST_FILENAME} -f [OR]
#如果 URL 指向了存在的目錄
RewriteCond %{REQUEST_FILENAME} -d
# 那麼跳過重寫直接到 WP
RewriteRule ^(.*)$ - [S=1]
#否則指向 WP 重寫該請求
RewriteRule . /index.php [L]
#
#WordPress 結束

以下就是執行前面程式碼最佳化後的效果:

因為 index.php 檔案是存在,因此檢查它的存在性是無意義的,這樣就在對 example.com, example.com/ 或 example.com/index.php 傳送請求時就可以避免了不必要的檔案檢查。

每次對靜態檔案的訪問請求實際上並不需要被重定向。如果該檔案確實在磁碟上,這個請求將被響應,否則應該返回檔案不存在或者預設子目錄 index.php 檔案。這些靜態檔案包括了.jpg,.png,.gif,.css,.js 格式的檔案以及其他靜態檔案。由於大部分部落格都包含了很多的靜態檔案,所以這將會對頁面載入速度也非常大的影響。

來源: http://WordPress.org/extend/ideas/topic.php?id=3524