WordPress的.htaccess优化技巧

时间:2022-06-01 20:28:02

目前.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格式的文件以及其他静态文件。由于大部分博客都包含了很多的静态文件,所以这将会对页面加载速度也非常大的影响。