新浪 SAE 云平台如何绑定域名到子目录
文章目录

很早以前周良介绍过新浪的 Sina App Engine(新浪SAE云平台)服务,可以用于建设免费的 WordPress 等程序网站,也可以部署自己开发的程序。我曾经也在博客发布过《基于新浪SAE平台的定时手机短信提示功能》 和《基于新浪 SAE 平台的网站监控报警系统》这些小应用,但是新浪 SAE 有个限制,就是普通用户只能创建 10 个独立的应用,如果超过十个,就需要付费购买更高的账户权限了。

所以,周良给大家带来一个小技巧,可以绑定域名到应用的子目录。打个比方:imzl.com 这个域名我绑定到了一个应用,绑定的是根目录;blog.imzl.com 这个域名我可以绑定到这个应用的 [/blog] 目录下面(域名和目录可以自定义)。这样大家就可以在一个应用里面创建多个独立的网站了。

首先,需要把你的域名绑定到 SAE 应用。SAE 绑定域名的方法有两种:

  1. 如果你的域名已经在其他服务器备案过,则可以向 SAE 官方申请绑定 http://sae.sina.com.cn/?m=devcenter&catId=9

  2. 自助绑定。请打开你的应用,进入「应用设置」,在「独立域名设置」便可以看到操作面板。按照提示一步步操作即可。(关于域名的绑定,可以查看《新浪SAE开放独立域名绑定功能》这篇文章)

绑定域名后,就需要写 Appconfig 了。Appconfig 保存在代码目录的 config.yaml 文件。绑定域名到子目录的写法如下:

name: Sub-domain binding
handle:
- rewrite:if ( in_header["host"] ~ "blog.imzl.com" && path ~ "^(?!blog/)(.*)" ) goto "blog/$1?%{QUERY_STRING}"
- rewrite:if ( in_header["host"] ~ "code.imzl.com" && path ~ "^(?!code/)(.*)" ) goto "code/$1?%{QUERY_STRING}"
- rewrite:if ( in_header["host"] ~ "www.imzl.com"&& !is_file() &&path ~ "^(?!www/)(.*)" ) goto "www/$1?%{QUERY_STRING}"

解释一下这段代码的意思:

blog.imzl.com 绑定到「/blog」目录
ceode.imzl.com 绑定到「/code」目录
www.imzl.com 绑定到「/www」目录

关于怎么搞定子目录安装程序,可以查看 SAE 的官方文档(无非就是用SVN上传程序文件,把文件传到你需要设定的子目录就可以了)。