目录
问题描述
很多朋友和我有一样的问题——域名在海外,并且不再支持实名认证的范围,即便转回国内,也无法通过实名认证,从而无法备案。但是微信的API使用列表又需要一个备案的域名。
这时候如果想使用微信的API,特别是分享时候有描述和图片就变得无比困难。
解决方法
想了几个办法,最终选择了JS 判断UA然后重定向到微信专用的备案域名。代码如下(注意替换域名)
if (navigator . userAgent . indexOf('MicroMessenger') !== - 1 && window . location . hostname . indexOf('blog.jing.do') !== - 1) { window . location = "https://wechatdomain.com" + window . location . pathname + window . location . search + window . location . hash; } else if (navigator . userAgent . indexOf('MicroMessenger') == - 1 && window . location . hostname . indexOf('blog.jing.do') == - 1) { window . location = "https://blog.jing.do" + window . location . pathname + window . location . search + window . location . hash; }
PS:
之前想过用IP判断,如果是中国的,直接导向备案域名一了百了。但是发现问题是:1. 这样两个域名访问一个资源,会有SEO问题。 2. 微信有海外服务器,无法完全做到防屏蔽。
还想过直接在CDN上做文章,CloudFlare上可以写worker,直接就能判断,这个比在执行页面上写JS要高效很多,但是无奈如果这个方案需要购买2个worker给两个域名才行,如果有人有兴趣我回头搞搞分享给大家。