最近研究了下wordpress的.htaccess文件,蛮有意思也很重要的,都是些细节问题吧,觉得自己以后还可能会用到,就先转载了留在自己的博客。No牛网的固定链接地址变了,所以.htaccess文件的301就非常重要,另外也顺便优化wordpress。留点小提示吧:wordpress的.htaccess文件很容易被程序重置哦,你只要点击固定链接选项就会重置的,防止重置的方法是把你需要的写在# END WordPress后面或者# BEGIN WordPress的前面。
大家都知道页面加载速度对博客流量有非常重要的影响。最近越来越多人也在讨论页面加载速度很可能成为谷歌和其他搜索引擎一个重要的SEO因素。
目前.htaccess 文件的主要问题是RewriteCond 指令性地检查磁盘文件是否存在,就算根本不需要检查,每一次访问磁盘都增加了页面加载时间。
# BEGIN WordPress<ifmodule>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</ifmodule># END WordPress
当前的WordPress .htaccess 根本就没有优化。在Webmaster World的一篇帖子上,Mod_Rewrite/.htaccess 的专家Jim Morgan 建议大家用下面的.htaccess文件取代原来的文件:
# BEGIN WordPress<ifmodule>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 # 那么跳过重写直接到WPRewriteRule ^(.*)$ - [S=1] #否则指向WP重写该请求RewriteRule . /index.php [L]</ifmodule># END WordPress
以下就是执行前面代码优化后的效果:
因为index.php文件是存在,因此检查它的存在性是无意义的,这样就在对example.com, example.com/ 或example.com/index.php发送请求时就可以避免了不必要的文件检查。
每次对静态文件的访问请求实际上并不需要被重定向。如果该文件确实在磁盘上,这个请求将被响应,否则应该返回文件不存在或者默认子目录index.php文件。这些静态文件包括了.jpg,.jpg,.gif,.css,.js格式的文件以及其他静态文件。由于大部分博客都包含了很多的静态文件,所以这将会对页面加载速度也非常大的影响。
本文属于转载文章,原文链接:http://www.chinaz.com/web/2010/0124/104831.shtml。如果你不会使用.htaccess文件或者不会在windows下面新建该文件,可以去怎么在Windows系统创建.htaccess文件了解一下。