现在绝大多数的空间都支持.htaccess文件,可以用它来更换域名后重定向、自定义错误页面、防盗链、伪静态等。之前的文章用htaccess实现301重定向,避免权重分散介绍了实现301重定向的功能,今天要说的是如何利用.htaccess文件来实现反向代理,让你绑定一切不支持绑定域名的站点!

本文以绑定Google App Engine为例:

前提:

1、Apache的服务器 2、支持自定义.htaccess文件 3、服务器启用了apache的mod_proxy模块

方法:

其实很简单,就是利用 .htaccess文件将域名反向代理到你的GAE二级域名。 首先你需要在你的空间做好域名绑定,之后就可以做反向代理了。 比如你的GAE二级域名是http://***.appspot.com,那么在你的.htaccess文件里应该这样写:

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ http://id.appspot.com/$1 [P]

请注意最后是 [P],而不是平时我们使用域名重定向的[R]。[P]代表的是proxy,而[R]是代表Redirect。这样你就可以通过你域名访问你的GAE空间了。

如果你是用GAE架设的博客,这样虽然能正常访问和留言,但是不能写文章的,写东西还是需要翻墙。因为你只是把域名反向代理到***.appspot.com。虽然可以达到绑定域名的效果,但实际上并不是通过正规的方式绑定域名(正规是cname到ghs),所以用反向代理的域名登陆时,跳到google的页面,而google这时只认得***.appspot.com 这个域名,所以最终还是跳到appspot.com。不过你可以先用一个二级域名给GHS做反向代理,再把域名CNAME到这个二级域名。