花式绕过国内未备案网站HTTP劫持的方法

发布于 2018-08-15  7.52k 次阅读


2019.8.6更新:本文所介绍的方法已经失效…。

目前(2018年8月15日)海之家是架设在阿里云的服务器上面的。由于我没有给海之家备案,通过HTTP来访问本站会被阿里云劫持,跳到一个要求备案的页面。所以在刚建站的时候我就给网站做了HTTPS以绕过劫持。这个办法效果不错,但是它并不能解决HTTP劫持的问题,也就是说只能用HTTPS才能正常访问,换成HTTP依旧会被劫持。

只能通过HTTPS访问海之家对于我自己来说倒是无所谓,反正自己知道就行。不过在我把我写的文章分享给我朋友的时候就不怎么方便了,由于我的朋友们并不知情,她们当然是直接在浏览器中输入omega.im来访问本站。而这么输浏览器默认用的是HTTP协议,她们最后看到的……就是那个要求备案的页面。

于是我今天想了个办法使得海之家也能通过HTTP访问,不过实现方法有点蛋疼。不介意的话请接着看下去。

1.准备工作

首先必须确保未备案的网站做了HTTPS。配置HTTPS的办法这里就不做介绍了,请自行到网上搜索。

2.实现方法

原理很简单,就是做个301重定向而已。

先去你的域名DNS解析页面看看你的服务商是否支持301重定向解析。

如果你的服务商支持301重定向解析,那就太棒了。直接拿个子域名用301解析来转址到未备案网站使用的域名上面。相信你肯定知道要转址到HTTPS上而不是HTTP。

不支持301重定向解析?没关系,不支持的话可以搞一台国外的服务器来做301重定向啊。还是拿个子域名解析到那台国外的服务器,然后在Nginx(或者Apache,Caddy,etc.)的配置文件里面添加一句301重定向参数。以Nginx为例,在配置文件里面加上这一行参数即可。(注意把omega.im换成你自己的域名)

return 301 https://omega.im$request_uri;

3.个人吐槽

相信用国内服务器的人大多数都会给网站备案,不想备案的肯定会用国外的服务器。像我一样嫌国外服务器访问速度慢又没给网站备案的人大概也只能用这样的办法了吧。