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