|
最近群里的小伙伴又在抱怨安装的wordpress cms主题加载太慢了,其实呢cms主题嘛,首页的文章展示模块太多了,所以产生的sql查询也就多了,自然而然的加载速度也就很慢咯尤其是数据展示量比较的cms主题,那加载速度可不敢恭维了。那么如何加快解构比较复杂的wordpress cms主题的加载速度呢?小V这里给出两个方案。 方案一:在服务器上安装eaccelerator或memcached这类的数据库缓存脚本,并且安装相关的wordpress插件。(PS:这个方案适合vps或者独立服务器的用户,如果小伙伴用的是虚拟主机那就别奢望这个方法了。) 方案二:为wordpress首页生成一个html文件跳过sql查询。(这个方法最有效,效果也很好,而且对小伙伴的空间配置要求不高,虚拟主机即可使用。) 实现方法: 1、新建一个名为index_html.php的文件并加入一下代码: <?php$baseCmsUrl = "http://www.v7v3.com"; //你网站的根目录不要加反斜杠/$dmPageName = "index.php";$stPageName = "index.html";$tureStFile = dirname(__FILE__).'/'.$stPageName;{ $body = file_get_contents($baseCmsUrl.'/'.$dmPageName); $fp = fopen($tureStFile, 'w'); fwrite($fp, $body); fclose($fp);}header("LocationbaseCmsUrl/index.html"); //生成后返回静态首页?> 将文件上传到网站根目录后直接打开浏览器访问该文件即可为wordpress首页生成html。 生成index.html文件后,我们要注意的是我们直接访问自己的域名和访问域名+index.html都会显示首页这样的会搜索引擎会认为你在制造重复页面,会给网站带来一定的负面影响,下面小V给出解决此问题的方法(访问index.html301转跳到/,即去除掉首页url中的index.html): apache下的解决方法: RewriteEngine On RewriteBase / RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^index\.(php|html|htm)$ http://www.v7v3.com/ [R=301,L] nginx下的解决方法 location / { if (!-e $request_filename){ rewrite ^/(.*)$ /index.html/$1 last; }} apache下只要将代码加到.htaccess文件最上面即可,域名替换成你自己的域名,至于nginx,小V就不多说了,既然你都用上了nginx那么这点问题应该还是懂的。 2014年1月15日更新 解决index_html.php文件只能执行一次的问题。(PS:群里有位小伙伴使用了小V的静态化首页的方法加速首页,但是发现index_html.php文件只能生成一次index.html文件,第二次执行后index.html文件无变化,只有登录FTP删除了之后再次生成才有用。)使用改良后的代码即可解决此问题,代码如下: <?phpif(file_exists("index.html")) {unlink("index.html"); }$baseCmsUrl = "http://www.v7v3.com";$dmPageName = "index.php";$stPageName = "index.html";$tureStFile = dirname(__FILE__).'/'.$stPageName;{ $body = file_get_contents($baseCmsUrl.'/'.$dmPageName); $fp = fopen($tureStFile, 'w'); fwrite($fp, $body); fclose($fp);}header("LocationbaseCmsUrl/index.html");?> |
|