大家都知道頁面加載速度對博客流量有非常重要的影響。最近越來越多人也在討論頁面加載速度很可能成為谷歌和其他搜索引擎一個重要的 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