Born to be proud
8/9
2014

SAE域名绑定问题

今天为网站购买了顶级域名,折腾了几个小时终于算是弄好了,在此分享一些关于SAE上的绑定经验,也避免像我一样的新手少走弯路。
新浪还未开启域名备案服务,大多数站长的域名也应该未备案,下文讲的也是未备案域名的绑定,先说下域名绑定相关的几个名词吧。

A记录:域名绑定A记录就是告诉DNS,当输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。绑定的是主机IPV4地址。
CNAME:CNAME指别名记录也被称为规范名字。这种记录允许您将多个名字映射到同一台计算机。可以指向http地址。

可以将一个域名做A记录指向服务器IP,然后将其他的域名做别名(即CNAME)到A记录的域名上;那么当服务器IP地址变更时,就可以不必对一个一个域名做更改指向了,只需要更改A记录的那个域名到服务器新IP上,其他做别名(即CNAME)的那些域名的指向将自动更改到新的IP地址上(以上操作均需要在DNS处执行)。

SAE的域名绑定按照提示先进行一个A验证,在CNAME到所给地址即可。
需要说明的是要将带www的与不带www的分别绑定,即绑定 www.liu13.com 与 liu13.com
但万网等一些的域名注册商所带的DNS解析是不支持顶级域名(liu13.com无前缀)CNAME的,需要转到其他支持的DNS上,我选择的是DNSPod,推荐大家使用,比较稳定好用。

SAE域名绑定完成以后,带www的与不带www的访问内容虽然一样,但网址是不同的,为了SEO更好,利于搜索引擎增加权重,最好301重定向其中一个,推荐将不带www的301到带的。SAE上不支持htaccess文件,换成的是SAE的APPConfig。方法如下:
开启SAE的地址重写功能,进入SAE管理的后台,在左侧功能面板中打开AppConfig,然后在AppConfig页面找到URL重写(rewrite)模块。点击“设置该项”,在弹出的对话框中,找到“确认”和“取消”按钮,在其旁边有个“高级语法”,打开。在AppConfig语法中填下以下内容:

- rewrite: if(in_header["host"] ~ "^liu13.com" && path ~ "^(.*)$") goto "http://www.liu13.com$1 [L,QSA,R=301]"
- rewrite: if(in_header["host"] ~ "^liu13.sinaapp.com" && path ~ "^(.*)$") goto "http://www.liu13.com$1 [L,QSA,R=301]"

第一条将 liu13.com 的全部定向到带 www.liu13.com
第二条将SAE自带二级域名全部定向到 www.liu13.com

以上内容将其中的网址根据需要换成您的网址即可。另外未备案绑定域名以后,通过独立域名请求将访问海外数据中心,产生的流量将是原二级域名(liu13.sinaapp.com) 流量的二倍,通过 liu13.sinaapp.com 访问的流量不变。建议您绑定独立域名后,静态资源仍通过liu13.sinaapp.com访问。