首页 > 新闻资讯 > 优化WordPress的.htaccess

优化WordPress的.htaccess

14条评论
标签:
更多

大家都知道页面加载速度对博客流量有非常重要的影响。最近越来越多人也在讨论页面加载速度很可能成为谷歌和其他搜索引擎一个重要的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

* 版权声明:作者WordPress啦! 转载请注明出处。

#1
谢谢,在自己的博客上试一试去
#2
我想知道这样修改以后对永久链接是否有什么影响吗?本人菜鸟.谢谢!
#3
没有影响的
#4
可以将里面的汉字去掉吗?即 # BEGIN WordPress RewriteEngine on RewriteBase / RewriteCond $1 ^(index\.php)?$ [OR] RewriteCond $1 \.(gif|jpg|css|js|ico)$ [NC,OR] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.*)$ - [S=1] RewriteRule . /index.php [L] # END WordPress
#5
所有以井号#开始的行都是注释,可以删掉。
#6
已经把我的htaccess文件改好了。。貌似快了。。
#7
大侠您救了我一命了。 我倒腾自己的BLOG的时候不小心把.htaccess文件倒腾丢了,满世界也找不到,更新了3.0版本也不给我恢复。 搞到没法把wordpress安装在子目录啦(正确来讲是安装到子目录之后没法用根目录做wordpress的index了orz) 现在就拿您这个.htaccess换上。
#8
.htaccess被替换错了, 找 .htaccess找到这里, 才知道还有优化的.htaccess, 试下先
#9
我也去试试,看着我的那个就是乱七八糟的
#10
改完之后,进不去后台了,呃,找不到目录,直接转到404了
#11
额,我这边试了下都好好的,你看看是不是符号不对?
#12
您好啊,我是完全复制的,不知道为何。。呃
#13
那就不太清楚了,你再分析下看看有别有别的原因吧。 
#14
我的从lnmp环境搬家到lamp环境上出错了,连静态文件都打不开了