写在前面
有一好友在BAE上搭建了自己的WordPress博客,但由于BAE推出的时间较晚,不像SAE那样已经具备较为完善的应用仓库,对WordPress博客程序也没有官方的支持,而固定链接对于一个博客来说是比较重要的,伪静态有利于搜索引擎优化,而链接的格式若不尽早确定,日后再想改变将是一件非常麻烦的事情。
什么是BAE
百度应用引擎(Baidu App Engine,简称BAE)是基于百度基础架构推出的网络应用开发平台,基于BAE架构,使开发者不需要维护任何服务器,只需要简单的上传应用程序,就可以为用户提供服务。BAE有能力将原本单机的LAMP架构,变成分布式架构。
开发者可以基于BAE平台进行PHP、Java、Python应用的开发、编译、发布、调试。同时BAE平台也提供了大量的云服务给开发者,包括fetch URL、task queue、SQL、memcache,后续会提供更多服务。在性能方面,如果开发者希望增加服务能力,可以通过申请更多执行单元的方式进行灵活的调整。
BAE服务可以让开发者在开发网络应用程序的过程中摆脱繁琐的环境、服务问题,把精力专注于业务逻辑。
简单的上传应用程序,就可以为用户提供服务。BAE有能力将原本单机的LAMP架构,变成分布式架构。
开发者可以基于BAE平台进行PHP、Java、Pyt应用的开发、编译、发布、调试。同时BAE平台也提供了大量的云服务给开发者,包括fetch URL、task queue、SQL、memcache,后续会提供更多服务。在性能方面,如果开发者希望增加服务能力,可以通过申请更多执行单元的方式进行灵活的调整。
BAE中的rewrite
Rewrite是一种服务器的重写脉冲技术,它可以使得服务器可以支持 URL 重写,是一种最新流行的服务器技术。ewrite主要的功能就是实现URL的重写,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式。
在BAE中,rewrite是使用应用配置中的url配置来实现的,文档(详见BAE应用配置教程)中说明,url配置的功能类似url
rewrite功能。将符合匹配规则的url重写到指定的脚本处理。Rewrite规则可以配置多条。顺序是从上往下依次匹配,遇到第一个匹配成功的即结束配置过程。另外, 并不需要请求的uri完全匹配指定的正则,只要其中有部分内容匹配即可。

从中也可以看出,BAE对url配置的文档并不详尽,对于许多人来说,实在是一个不小的难题。
如何实现伪静态
在SAE中,WordPress伪静态的实现方式是在配置文件中添加如下rewrite规则:
-
-rewrite:if(!is_file()&&!is_dir()&&path~"^/(.*)")goto"index.php/$1"
可以看出原理为:将既不是文件,也不是文件夹的地址转发至index.php/之后,既是将伪静态路径作为参数使用pathinfo的形式传至index.php,由单一入口文件index.php统一处理,解析并显示出所对应的内容。
同样的方式在BAE却彻底地失败了,首先,我并不知道BAE中如何判断一个路径是否文件或文件夹,其次直接将某个地址rewrite到index.php/之后,却出现了404错误页面,这说明了一个问题:BAE不支持pathinfo!
后来,我直接将所有特定格式的路径(文章、搜索、归档、标签、类别、独立页面)rewrite到相对应的原本地址上:
比如:
http://binary.duapp.com/2012/11/629.html
rewrite到:
http://binary.duapp.com/index.php?p=629
进而发现,其实只要将所有需要设置固定链接的路径重写至index.php即可,WordPress会根据当前路径自动判断并显示出当前内容。
好了,说了这么多,也该上最重要的部分了,以下面的固定链接格式为例:
-
/%year%/%monthnum%/%post_id%.html
所需的配置信息如下:
规则类型
规则
执行
url |
/.*/.*/.*.html |
/index.php |
url |
/rss.xml |
/index.php |
url |
/feed |
/index.php |
url |
/comments/feed |
/index.php |
url |
/feed/.* |
/index.php |
url |
/author/.* |
/index.php |
url |
/search/.* |
/index.php |
url |
/tag/.* |
/index.php |
url |
/category/.* |
/index.php |
url |
/date/.* |
/index.php |
url |
/page/.* |
/index.php |
这样便搞定了,当然,如果你有独立页面,那么需要再为每一个独立页面多添加一条规则,以(http://www.clanfei.com/about/)为例:
规则类型
规则
执行
url |
/about |
/index.php |
或许有人会问,既然全部都是重写至index.php,何不直接把/.*重写至/index.php呢?答案其实很简单,因为除了上述的一些固定链接之外,还有许多路径是不需要重写的,比如wp-content目录,wp-admin目录,如果把这些地址也rewrite了的话,将会出现许多足以致命的错误。
=======================签 名 档=======================
原文地址(我的博客):http://www.clanfei.com/2012/11/1664.html
欢迎访问交流,至于我为什么要多弄一个博客,因为我热爱前端,热爱网页,我更希望有一个更加自由、真正属于我自己的小站,或许并不是那么有名气,但至少能够让我为了它而加倍努力。。
=======================签 名 档=======================
分享到:
相关推荐
本源码提供了一个基于Python和Django的百度应用引擎BAE示例应用设计。项目包含2370个文件,其中包括1171个PO文件、826个Python源文件、102个GIF图片、98个HTML文件、68个JavaScript文件、24个CSS样式文件、21个PNG...
1、替换了 wp_mail 函数,采用百度云消息来实现邮件的发送2、解决 WordPress 在 BAE 运行时的乱码问题3、自带一个BCS百度云存储插件,方便你上传管理文件4、支持Wordpress固定链接即Url重写伪静态5、中文版本的...
百度应用引擎BAE正式开放.docx
在WordPress中,有多种插件可以生成Sitemap,但如果选择手动创建,你需要编写代码来获取所有文章、页面、分类和其他重要链接,并按照Sitemap的XML格式输出。在BAE环境中,此文件将作为生成Sitemap的入口点。 在实际...
【标题】:“WordPress 3.7 for BAE” 指的是在百度应用引擎(Baidu App Engine, 简称BAE)上运行的WordPress博客系统的一个特定版本,即3.7版。BAE是百度提供的一个云计算平台,它允许开发者在无需管理服务器硬件的...
【标题】"基于PHP的WordPress百度BAE版.zip"指的是将流行的开源内容管理系统WordPress与百度云应用引擎(BAE)相结合的版本。这个版本是为了在百度的云计算平台上部署WordPress而特别优化的,允许用户在无需独立...
### 百度应用引擎(BAE)综合知识点 #### 一、百度应用引擎(BAE)概述 **百度应用引擎**(Baidu App Engine, BAE)是由百度公司推出的一个面向开发者的云平台服务。BAE旨在为开发者提供一站式的云计算解决方案,包括但...
BAE配置wordpress的配置文件样本。 详见http://blog.csdn.net/limb99/article/details/18842407
【标题】"基于PHP的WordPress百度BAE版源码"是指将流行的开源博客平台WordPress进行了适配,使其能够在百度云应用引擎(Baidu App Engine,简称BAE)上运行的特殊版本。BAE是百度提供的一个云计算平台,它支持开发者...
"Wordpress博客程序bae版"指的是该程序已经优化并适配了百度应用引擎(Baidu App Engine,简称BAE)。BAE是百度提供的一个云计算平台,支持开发者在云端部署和运行各类Web应用程序,包括基于PHP的WordPress。 1. **...
【WordPress 3.8 for BAE】是专为百度应用引擎(Baidu App Engine,BAE)定制的WordPress版本。这个版本使用户能够在BAE平台上搭建和运行WordPress网站,享受其强大的内容管理系统(CMS)功能。以下是对每个文件的详细...
【Wordpress_on_BAE3.5】:这个项目...总的来说,"Wordpress_on_BAE3.5"项目提供了一种在百度云上快速搭建个人网站的方法,通过理解这些核心文件的作用以及如何在BAE环境下配置和优化,可以实现高效、安全的网站运行。
【WordPress 3.5.1 for BAE】是一款专为百度云服务平台(BAE)优化的WordPress博客系统。WordPress是一个非常流行的开源内容管理系统(CMS),主要用于构建网站和博客。3.5.1是该系统的特定版本,包含了在BAE平台上...
【标题】:“百度贴吧签到BAE版”指的是利用百度应用引擎(Baidu App Engine,简称BAE)开发的一种自动签到程序,主要用于百度贴吧的每日签到功能。BAE是百度提供的一项云端开发平台,它允许开发者在无需管理服务器...
百度BAE,全称为百度应用引擎,是百度推出的一款基于云计算技术的互联网应用开发与部署平台。它为开发者提供了便捷、高效、安全的云端环境,使得开发者无需关注底层硬件设施,只需专注于应用的开发,即可实现应用的...
1. **云存储及SDK**:BAE提供了云存储服务,用于存储应用的静态资源和数据,同时提供了相应的SDK,方便开发者进行数据读写操作。 2. **BCMS和Channel服务**:BCMS(Baidu Cloud Management System)是百度的云管理...
自从上次东子从BAE搬到cubic后,已经有半年多了,当时BAE刚起步,兼容性不怎么好...伪静态正常。BCS也没有问题,东子测试图片上传插入均正常。 安装后在后台插件启用BCS,填入你的“桶”名称。有什么问题欢迎留言反馈
【描述】"BAE到WP.7z"是一个压缩包,其中包含了一套工具或脚本,用于将百度应用引擎(BAE)上的项目转换为WordPress(WP)平台。BAE是百度提供的一种云服务平台,允许开发者基于其平台构建Web应用。而WordPress则是一个...
【标题】"基于PHP的HiBCS 百度BAE版.zip" 提供的是一个专为百度应用引擎(BAE)优化的PHP实现的HiBCS(高性能BCS,即Baidu Cloud Storage)客户端库。这个压缩包内容可能包含了用于与百度云存储进行交互的源代码、配置...
百度应用引擎(BAE)是百度提供的一个云开发平台,允许开发者将应用程序托管在云端,无需关心服务器运维,专注于代码开发。BAE支持多种编程语言,包括PHP,它为PHP开发者提供了便捷的环境配置、自动负载均衡、弹性...