WordPress在SAE平台实现的静态化插件及用法示例

这篇具有很好参考价值的文章主要介绍了WordPress在SAE平台实现的静态化插件及用法示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文实例讲述了WordPress在SAE平台实现的静态化插件及用法。分享给大家供大家参考,具体如下:

WordPress是一款非常热门的博客系统,但是其对于静态化的支持却不是很好。虽然说可以配置主机的htaccess规则,来达到伪静态的效果,但是如果能够纯静态,提速效果会非常明显,而且体验也好。而且很多人都觉得,静态化对SEO也有很好的帮助。而纯静态的首选方法就是使用插件,WordPress有着好几款静态化的插件,但是对于SAE的特殊环境来说,都是无能为力。今天就借着一款叫做cos-html-cache的插件,来实现把文章页面和首页都静态化到KVDB中。

由于SAE是全分布式的,所以禁止了写入功能,所以移植的第一步就是把写入到本地的全部改写到KVDB中。分别有五处地方需要修改:

复制代码
代码如下:
$kv=new SaeKV();
$kv->init();
$kv->set($path,$Content);
//if sql error ignore...
// $fp = @fopen( $path , "w+" );
// if( $fp ){
// @chmod($path, 0666 ) ;
// @flock($fp ,LOCK_EX );
// fwrite( $fp , $Content );
// @flock($fp, LOCK_UN);
// fclose($fp);
// }

把五处根据代码都修改为写入KVDB中即可,这里使用你的url作为存储的key。

但是这样还不行,你只是写入了KVDB,去访问的时候还得要读取出来,这时就需要配置rewrite了。在你应用的AppConfig中添加以下三行:

复制代码
代码如下:
handle:
- rewrite: if ( %{REQ:REFERER} != "static" && %{REQUEST_URI} ~ "html$" ) goto "wp-content/plugins/cos-html-cache/static.php"
- rewrite: if ( !is_dir() && !is_file()) goto "index.php?%{QUERY_STRING}"
- rewrite: if ( path ~ "/(\s*)$" && %{REQ:REFERER} != "staticindex" ) goto "wp-content/plugins/cos-html-cache/index.php"

注意的是,伪静态的规则一定要在另外两个规则的中间,不然很容易出问题的。

然后再到cos的插件目录,新建两个文件index.php和static.php,分别用来处理首页和文章页的重定向输出,写入以下代码:

复制代码
代码如下:
define("SUMMETA","");
$kv = new SaeKV();
$kv->init();
$sitemap = $kv->get($_SERVER['SCRIPT_URI']);
if ($sitemap) {
header('Content-type:text/html; charset=utf-8');
echo $sitemap;
}else{
echo fetchUrl($_SERVER['SCRIPT_URI']).SUMMETA;
}
function fetchUrl($url){
$ch=curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER,0);
curl_setopt($ch, CURLOPT_REFERER, 'static');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$ret=curl_exec($ch);
curl_close($ch);
if ($ret) {
return $ret;
}else{
return false;
}
}

 
上面的是static.php的,主要作用就是把KVDB中的内容输出,若不存在则向后端程序去请求页面,并且生成静态的到KVDB中。index.php的和上面类似,只要在get的键后面加上/index.html,然后把REFERER的值改为staticindex即可。

还有就是要注意,你的博客必须已经是伪静态的了,才可以使用该插件,不然是没有任何效果的。而且纯静态之后,文章的访问统计以及随机文章之类的都会失效的,解决办法就是使用javascript统计,然后使用ajax请求数据。

这样,就可以到后台去启用该插件了。那如何判定是否有生成静态页面的呢?可以在访问的时候查看源代码,拉到最底下看是否有生成一行插件的标记即可。

2015-03-31更新:

1.解决首页问题

插件点击此处本站下载

2015-06-23更新:

1.解决首页搜索跳转

BUG描述:当网站有搜索功能时,由于搜索的时候是带有s参数的,而插件并未判断该参数,导致搜索时会一直循环跳转到首页
解决:加入判断即可

希望本文所述对大家基于wordpress的程序设计有所帮助。文章来源地址https://www.toymoban.com/news/detail-423225.html

到了这里,关于WordPress在SAE平台实现的静态化插件及用法示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WordPress做权重站:二级目录伪静态写法

    我喜欢用WordPress建站,但是每个网站我都会写3个以上的二级目录,为什么了,因为WordPress数据量过大会导致数据库很大很卡,所以这种做法可以减轻数据库的负荷。我一般每个目录的文章达到15万篇就不会再更新了,3个目录加起来大约50万篇左右;二级目录的做法可以递增网

    2024年02月14日
    浏览(47)
  • Wp模板,免费WordPress模板,WordPress插件详解

    Wp模板,最近很多站长问我有没有对SEO优化友好的WordPress模板主题。不要问有没有WordPress模板主题,问就是有wp模板主题。但是我们站长如果想做好SEO优化,我们光有“漂亮”的WordPress主题模板是不够的,我们要做SEO基础优化一步一步对网站进行SEO站内优化以及SEO站外优化。我

    2024年02月13日
    浏览(56)
  • Unity使用OpenCV插件实现人脸融合 —— 换脸换装示例

    本章节针对部分网友提出的看不懂源码,拿到相关资料后这也报错,那也有报错,要求提供一个付费源码工程,来咯来咯来咯,今天就写一章专门针对换脸换装的小白级操作案例; Unity版本我这儿使用的是2020.3.25,VS2022,然后涉及到的三个插件: OpenCV for Unity2.4.7.unitypackage ,

    2024年01月17日
    浏览(39)
  • wordpress静态化首页及去除url中的index.html

    使用wordpass博客程序的朋友都知道他的默认首页是index.php,然而地球人都知道index.html的太首页能够提高网站首页的访问速度。原因的话。地球人都知道的。 其实呢cms主题嘛,首页的文章展示模块太多了,所以产生的sql查询也就多了,自然而然的加载速度也就很慢咯尤其是数据

    2023年04月23日
    浏览(44)
  • 免费的WordPress插件大全

    在当今数字化的时代,拥有一个强大的在线存在变得至关重要。而对于使用WordPress建站的用户来说,插件是提高网站功能的关键。在这篇文章中,我们将为您推荐三款免费的WordPress插件,它们不仅是147SEO软件中的佼佼者,而且能够显著提高您的网站在搜索引擎中的排名。 Yo

    2024年01月21日
    浏览(40)
  • docker与phpstudy两种方式部署wordpress 并 开启伪静态

    实际测试,可能是docker内存限制的缘故,docker部署的会比较卡 wordpress phpstudy phpstudy中伪静态配置 正常访问 WordPress 文章页的 URL 地址为 http://asa/index.php?p=123。变成伪静态就是http://asa/123.html 。 伪静态是相对真实静态来讲的,真实静态会生成一个html或htm后缀的文件,访客能够访

    2024年01月20日
    浏览(48)
  • 【实例】POSTGRE SQL如何用age函数实现两个日期之间的差值计算用法及代码示例

    【实例】POSTGRE SQL如何用age函数实现两个日期之间的差值计算用法及代码示例 工作中遇到需要计算两个日期之间的月份差值、天数差值,百度到的众多内容自己通过实践整理后,将最终的计算结果分享给大家 例: 用到的函数:age(end_date,start_date) age函数常用来计算年龄,计算

    2024年02月04日
    浏览(66)
  • wordpress自动配图插件

    wordpress自动配图插件,让我们可以轻松的对WordPress文章自动配图。和一般的缩略图插件有所不同的是,wordpress自动配图插件可以让我们自由选择图片库并对图片进行自定义水印生成缩略图。 wordpress自动配图插件支持本地文件夹图片库和URL图片。相较于文字,用户更倾向于有图

    2024年02月15日
    浏览(35)
  • python自动把内容发表到wordpress完整示例及错误解答

    要实现 Python 自动将内容发布到 WordPress,可以使用 Python 的 wordpress_xmlrpc 库,该库提供了使用 WordPress XML-RPC API 进行内容发布和管理的功能。 需要安装一下第三方库:wordpress_xmlrpc! pip install python_wordpress_xmlrpc 下面是一个简单的示例代码,可以实现发布一篇新文章到 WordPress:

    2024年02月11日
    浏览(41)
  • vue中前端实现pdf预览(含vue-pdf插件用法)

      场景:前端需要根据后端返回的线上pdf的地址,实现pdf的预览功能。 情况一:后端返回的pdf地址,粘贴到浏览器的url框中,是可以在浏览器中直接进行预览的。 方法(1)可以直接使用window.open(\\\'获取到的pdf地址\\\')重新打开一个浏览器页签,通过浏览器页签直接实现预览功

    2024年02月04日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包