<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oasis Feng &#187; Domain</title>
	<atom:link href="http://blog.oasisfeng.com/tag/domain/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.oasisfeng.com</link>
	<description>Challenge your imagination!</description>
	<lastBuildDate>Tue, 13 Jul 2010 16:56:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>在Google App Engine中使用泛域二级域名</title>
		<link>http://blog.oasisfeng.com/2010/01/30/use-wildcard-domains-in-google-appengine/</link>
		<comments>http://blog.oasisfeng.com/2010/01/30/use-wildcard-domains-in-google-appengine/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 10:40:39 +0000</pubDate>
		<dc:creator>oasisfeng</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[wildcard]]></category>

		<guid isPermaLink="false">http://blog.oasisfeng.com/?p=841</guid>
		<description><![CDATA[Google App Engine（以下简称GAE）除了支持自有的appspot.com域名外，借助Google Apps，它还允许用户配置自己的独立域名提供服务。但之前使用过独立域名的朋友可能都遇到过一个相同的困扰：你可以用指定一个特定的二级域名访问你的应用，但却无法使用泛域二级域名（wildcard sub-domain）。对泛域支持的社区呼声一直都很强烈，Google也声称将要支持这一特性，但却未给出具体的时间表。 前两天为了解决tb.ly的泛域二级域名，折腾了很久。因为虚拟主机服务商Dreamhost不对非Private Server用户支持DNS泛域解析，所以我不得不另谋它策。在GAE上的一次没头没脑的尝试，居然意外的让我发现GAE已悄然支持了泛域二级域名。配置过程稍微有些复杂，所以在这里完整整理出来，以tb.ly的真实案例，分享给各位研究GAE的朋友。 首先需要为你的域名（顶级或子域名均可，比如我的“tb.ly”）申请Google Apps服务，这是在GAE中配置独立域名的前提。申请免费的Standard版本即可。 然后就可以在GAE管理面板中选择Administration / Application Settings / Domain Setup / Add domain&#8230;，填入你的域名（比如“tb.ly”）。按照向导一步一步完成配置（可参考GAE的一篇教程），最后你会被带到Google Apps的应用配置界面，这里及可以为你的应用添加二级域名了。点“Add new URL”，会出现一个输入二级域名的输入框。Google并没有告诉你，其实这里只要输入“*”即可享受泛域二级域名了~ 完成上述配置后，试试在浏览器的地址栏输入任意一个二级域名（比如“oasis.tb.ly”），如果看到了你熟悉的应用界面，那么恭喜你，你已经成功完成了必要的配置！如果无法访问，也别灰心，很可能是由于你的DNS配置需要一些小小的调整。泛域域名需要在DNS配置中设定对应的泛域解析，具体而言，就是增加一条CNAME：*，指向ghs.l.google.com.（也可以是你自己为绑定ghs而创建的CNAME条目）。完成这项配置后，尝试ping一个任意二级域名，如果显示的回应主机名为ghs.l.google.com，就代表配置OK了。当然，如果回应主机没错，但ping的结果是timeout，那就涉及到另外一个复杂的国情问题，不在本文的讨论范畴内了。 至此为止，假设你已经成功的完成了上述步骤（还有任何我没有解释到的问题，欢迎留下评注或来信与我讨论）。那么下面我就拿tb.ly的例子演示一下如何在GAE的应用中识别和处理泛域二级域名：（我基本只用Java版，所以很抱歉不能同时覆盖Python的情形，不过相信这对熟悉GAE开发的朋友来说也不算是一个大问题） package ly.tb; import java.io.IOException; import java.net.URL; import java.util.Iterator; import java.util.NoSuchElementException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.appengine.repackaged.com.google.common.base.Splitter; public class SubDomainRedirector extends HttpServlet { @Override protected void doGet(final HttpServletRequest [...]]]></description>
			<content:encoded><![CDATA[<p>Google App Engine（以下简称GAE）除了支持自有的appspot.com域名外，借助Google Apps，它还允许用户配置自己的独立域名提供服务。但之前使用过独立域名的朋友可能都遇到过一个相同的困扰：你可以用指定一个特定的二级域名访问你的应用，但却无法使用泛域二级域名（wildcard sub-domain）。对泛域支持的<a href="http://code.google.com/p/googleappengine/issues/detail?id=113">社区呼声</a>一直都很强烈，Google也声称将要支持这一特性，但却未给出具体的时间表。</p>
<p>前两天为了解决tb.ly的泛域二级域名，折腾了很久。因为虚拟主机服务商Dreamhost不对非Private Server用户支持DNS泛域解析，所以我不得不另谋它策。在GAE上的一次没头没脑的尝试，居然意外的让我发现GAE已悄然支持了泛域二级域名。配置过程稍微有些复杂，所以在这里完整整理出来，以tb.ly的真实案例，分享给各位研究GAE的朋友。</p>
<p><span id="more-841"></span>首先需要为你的域名（顶级或子域名均可，比如我的“tb.ly”）<a href="http://www.google.com/apps/">申请Google Apps服务</a>，这是在GAE中配置独立域名的前提。申请免费的Standard版本即可。</p>
<p>然后就可以在GAE管理面板中选择Administration / Application Settings / Domain Setup / Add domain&#8230;，填入你的域名（比如“tb.ly”）。按照向导一步一步完成配置（可参考<a href="http://code.google.com/appengine/articles/domains.html">GAE的一篇教程</a>），最后你会被带到Google Apps的应用配置界面，这里及可以为你的应用添加二级域名了。点“Add new URL”，会出现一个输入二级域名的输入框。<strong>Google并没有告诉你，其实这里只要输入“*”即可享受泛域二级域名了~</strong></p>
<p>完成上述配置后，试试在浏览器的地址栏输入任意一个二级域名（比如“oasis.tb.ly”），如果看到了你熟悉的应用界面，那么恭喜你，你已经成功完成了必要的配置！如果无法访问，也别灰心，很可能是由于你的DNS配置需要一些小小的调整。泛域域名需要在DNS配置中设定对应的泛域解析，具体而言，就是增加一条CNAME：*，指向ghs.l.google.com.（也可以是你自己为绑定ghs而创建的CNAME条目）。完成这项配置后，尝试ping一个任意二级域名，如果显示的回应主机名为ghs.l.google.com，就代表配置OK了。当然，如果回应主机没错，但ping的结果是timeout，那就涉及到另外一个复杂的国情问题，不在本文的讨论范畴内了。</p>
<p>至此为止，假设你已经成功的完成了上述步骤（还有任何我没有解释到的问题，欢迎留下评注或来信与我讨论）。那么下面我就拿tb.ly的例子演示一下如何在GAE的应用中识别和处理泛域二级域名：（我基本只用Java版，所以很抱歉不能同时覆盖Python的情形，不过相信这对熟悉GAE开发的朋友来说也不算是一个大问题）</p>
<pre>package ly.tb;

import java.io.IOException;
import java.net.URL;
import java.util.Iterator;
import java.util.NoSuchElementException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.appengine.repackaged.com.google.common.base.Splitter;

public class SubDomainRedirector extends HttpServlet {

	@Override
	protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
		final String host = new URL(req.getRequestURL().toString()).getHost();
		try {
			final String token = Splitter.on('.').split(host).iterator().next();
			if (token.equals("www"))
				resp.sendRedirect("<a href="http://tb.ly">http://tb.ly</a>");
			else
				resp.sendRedirect("http://" + token + ".taobao.com/");
		} catch(final Exception e) {
			resp.sendRedirect("<a href="http://tb.ly">http://tb.ly</a>");
		}
	}

	private static final long serialVersionUID = 1L;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.oasisfeng.com/2010/01/30/use-wildcard-domains-in-google-appengine/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>花$7.19在Godaddy购买了一个新域名</title>
		<link>http://blog.oasisfeng.com/2009/01/12/bought-a-new-domain-for-7-usd-at-godaddy/</link>
		<comments>http://blog.oasisfeng.com/2009/01/12/bought-a-new-domain-for-7-usd-at-godaddy/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 17:19:54 +0000</pubDate>
		<dc:creator>oasisfeng</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[godaddy]]></category>
		<category><![CDATA[Promo-Code]]></category>

		<guid isPermaLink="false">http://blog.oasisfeng.com/?p=594</guid>
		<description><![CDATA[使用的优惠码是在这里找的“yhkw105a”。 虽然不比上次Yahoo的$1.99促销时购买的oasisfeng.com这个域名，可能也不是眼下最便宜的域名注册商，但GoDaddy的服务在业界的口碑却是最大的吸引力。 BTW，域名这个东西，还是尽可能不要在国内注册，不仅价格死贵不说，要是想迁移或过户，还常被刁难。]]></description>
			<content:encoded><![CDATA[<p>使用的优惠码是在<a href="http://www.retailmenot.com/view/godaddy.com">这里</a>找的“yhkw105a”。</p>
<p>虽然不比上次Yahoo的$1.99促销时购买的oasisfeng.com这个域名，可能也不是眼下最便宜的域名注册商，但<a href="http://www.godaddy.com/">GoDaddy</a>的服务在业界的口碑却是最大的吸引力。</p>
<p>BTW，域名这个东西，还是尽可能不要在国内注册，不仅价格死贵不说，要是想迁移或过户，还常被刁难。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oasisfeng.com/2009/01/12/bought-a-new-domain-for-7-usd-at-godaddy/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Blogger终于支持私有域名</title>
		<link>http://blog.oasisfeng.com/2007/01/06/blogger-custom-domains/</link>
		<comments>http://blog.oasisfeng.com/2007/01/06/blogger-custom-domains/#comments</comments>
		<pubDate>Sat, 06 Jan 2007 12:10:44 +0000</pubDate>
		<dc:creator>oasisfeng</dc:creator>
				<category><![CDATA[Blogger]]></category>
		<category><![CDATA[BSP]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://blog.oasisfeng.com/2007/01/06/blogger-custom-domains/</guid>
		<description><![CDATA[　　Blogger Buzz今天宣布Blogger提供对私有域名（自己注册的域名）的支持，用户可以在自己的域名下使用Blogger的服务。我相信这是国内很多用户（包括以前的我）翘首以待的功能。相对国内很多BSP，Google的做法还是较为开放的，但根据经验，估计不久后大部分的BSP也会跟进提供类似的服务。:)]]></description>
			<content:encoded><![CDATA[<p>　　<a href="http://buzz.blogger.com/2007/01/blogger-custom-domains.html">Blogger Buzz今天宣布Blogger提供对私有域名（自己注册的域名）的支持</a>，用户可以在自己的域名下使用Blogger的服务。我相信这是国内很多用户（包括以前的我）翘首以待的功能。相对国内很多BSP，Google的做法还是较为开放的，但根据经验，估计不久后大部分的BSP也会跟进提供类似的服务。:)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oasisfeng.com/2007/01/06/blogger-custom-domains/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My domain is online now!</title>
		<link>http://blog.oasisfeng.com/2006/08/21/my-domain-is-online-now/</link>
		<comments>http://blog.oasisfeng.com/2006/08/21/my-domain-is-online-now/#comments</comments>
		<pubDate>Mon, 21 Aug 2006 08:47:00 +0000</pubDate>
		<dc:creator>oasisfeng</dc:creator>
				<category><![CDATA[DreamHost]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Domain]]></category>

		<guid isPermaLink="false">http://www.oasisfeng.com/blog/2006/08/21/my-domain-is-online-now/</guid>
		<description><![CDATA[Use them @ ur favor. :) http://www.oasisfeng.com http://blog.oasisfeng.com http://photo.oasisfeng.com &#8230;(to be added *_*) I use domain service from dnspark.net instead, because Yahoo!Domain does not support multiple domain forwarding but &#8220;www&#8221; only&#8230; :(]]></description>
			<content:encoded><![CDATA[<p>Use them @ ur favor. :)</p>
<p><a href="http://www.oasisfeng.com">http://www.oasisfeng.com</a><br />
<a href="http://blog.oasisfeng.com">http://blog.oasisfeng.com</a><br />
<a href="http://photo.oasisfeng.com">http://photo.oasisfeng.com</a><br />
&#8230;(to be added *_*)</p>
<p> I use domain service from <a href="http://www.dnspark.net">dnspark.net</a> instead, because Yahoo!Domain does not support multiple domain forwarding but &#8220;www&#8221; only&#8230; :(</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oasisfeng.com/2006/08/21/my-domain-is-online-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>鱼和熊掌 &#8211; Domain or Blogger ?</title>
		<link>http://blog.oasisfeng.com/2006/08/20/domain-or-blogger/</link>
		<comments>http://blog.oasisfeng.com/2006/08/20/domain-or-blogger/#comments</comments>
		<pubDate>Sun, 20 Aug 2006 06:38:00 +0000</pubDate>
		<dc:creator>oasisfeng</dc:creator>
				<category><![CDATA[Blogger]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Blogger-Beta]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[FTP]]></category>

		<guid isPermaLink="false">http://www.oasisfeng.com/blog/2006/08/20/%e9%b1%bc%e5%92%8c%e7%86%8a%e6%8e%8c-domain-and-blogger/</guid>
		<description><![CDATA[　　今天终于决定去申请“蓄谋”已久的顶级域名了。（oasisfeng.com这个域名想必是没人去抢注的，所以这么久了也一直也没放在心上） 　　比较了一番，似乎Yahoo提供的$1.99/1st year的域名服务确是目前最优惠的价格了。好在手里有张VISA卡，所以一路申请轻松搞定，就等验证后开通了。:) 　　接下来去Blogger Spaces申请了免费的Blogger发布空间服务，因为Blogger本身不能绑定到私有域名上，所以Blogger Spaces的出现正好填补了这个空缺。可惜申请后才发现Blogger Spaces的域名绑定服务即将开始收费…… 也罢，一年￥20的价格也还算公道。（毕竟已经相当于一个简单的静态虚拟主机了） 　　域名、空间都打点妥当后，回头来修改Blogger为FTP发布方式时才傻眼了，目前的Blogger Beta竟然还没有开放FTP发布方式的支持…… 汗，白忙活了大半个晚上？ 　　看完帮助里面的解释才明白，因为Blogger Beta增加了不少的动态功能，比如Label（怎么看都觉得其实可以做成静态功能），它们是无法与FTP这种静态发布方式兼容的，因此Blogger开发小组仍在尝试进行融合及取舍。 　　也不知道要等到什么时候才能享用到FTP发布功能。看来我还真得在顶级域名和动态功能之间作出一个取舍了…… （要是Blogger能支持域名绑定该多好啊 *_*）]]></description>
			<content:encoded><![CDATA[<p>　　今天终于决定去申请“蓄谋”已久的顶级域名了。（oasisfeng.com这个域名想必是没人去抢注的，所以这么久了也一直也没放在心上）</p>
<p>　　比较了一番，似乎<a href="http://domains.yahoo.com/">Yahoo提供的$1.99/1st year的域名服务</a>确是目前最优惠的价格了。好在手里有张VISA卡，所以一路申请轻松搞定，就等验证后开通了。:)</p>
<p>　　接下来去<a href="http://www.bloggerspaces.com">Blogger Spaces</a>申请了免费的Blogger发布空间服务，因为Blogger本身不能绑定到私有域名上，所以Blogger Spaces的出现正好填补了这个空缺。可惜申请后才发现Blogger Spaces的域名绑定服务即将开始收费…… 也罢，一年￥20的价格也还算公道。（毕竟已经相当于一个简单的静态虚拟主机了）</p>
<p>　　域名、空间都打点妥当后，回头来修改Blogger为FTP发布方式时才傻眼了，目前的Blogger Beta竟然还没有开放FTP发布方式的支持…… 汗，白忙活了大半个晚上？</p>
<p>　　看完帮助里面的解释才明白，因为Blogger Beta增加了不少的动态功能，比如Label（怎么看都觉得其实可以做成静态功能），它们是无法与FTP这种静态发布方式兼容的，因此Blogger开发小组仍在尝试进行融合及取舍。</p>
<p>　　也不知道要等到什么时候才能享用到FTP发布功能。看来我还真得在顶级域名和动态功能之间作出一个取舍了…… （要是Blogger能支持域名绑定该多好啊 *_*）</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.oasisfeng.com/2006/08/20/domain-or-blogger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.249 seconds -->
