朋友想做微信的引流销售
但是出现一个现象
网站还没推广,只在朋友之间测试,反馈
然后有朋友反映
网站被封了
可以肯定的是,绝对没人投诉
那么应该是微信对网站内容进行了检测
看了下页面,并没有什么违法乱纪的内容
微信为了用户体验,单方面的禁封商业行为,可以理解
但是既然找到了我,那肯定要帮忙看下微信检测的机制了
一般避免检测的话,无非两种办法:
- 内容
- 途径
内容的话可以这么改:把可能涉及违规的文本换成图片
作为程序员肯定都明白,对文本检测很容易,对图片检测的话难度就高了
再说说途径
途径就是尽量避免微信对你检测
类比权重之于百度
当然还是先看下服务器日志再讨论
看了下日志,没发现什么异常
倒是自己访问的时候,有几点可疑:
访问IP
访问时用的wifi,看了下IP是219.*.*.*
但是日志里记录的我的IP是218.*.*.*
以为是日志记录有误,手动测试后发现客户端IP的确被改了
出现这种现象的唯一解释是:
微信浏览器自带代理
之前所说的微信内置浏览器会代理用户,用这个可以防止微信代理
原理很简单,微信只代理GET和4K以下的POST,那就把所有A标签改成POST,Form追加内容
window.onload = function(){
var doc = document
,wxframe = {
createForm : function(){
this.form = doc.createElement('form')
,this.additional = doc.createElement('input');
var weight = ' '
,i = 3
,input = this.additional
input.type = 'hidden';
input.name = ' ';
while(i--){
weight = weight.replace(/./g, function(a,b){
return ' ';
});
}
input.value = weight;
this.form.method = 'POST';
}
,each : function(array, method){
var i = array.length
while(i--){
method(array[i]);
}
}
,init : function(){
this.createForm();
wxframe.each(doc.byTagName('form'), function(then){
then.addEventListener('submit', function(){
this.appendChild(wxframe.additional);
});
});
wxframe.each(doc.byTagName('a'), function(then){
var href = then.href;
if(typeof href == 'string' && !/^java|^#/.test(href)){
then.addEventListener('click', function(e){
e.preventDefault(e);
wxframe.form.append(wxframe.additional);
wxframe.form.action = href;
wxframe.form.submit();
});
}
});
}
};
doc.byTagName = function(tagName){return doc.getElementsByTagName(tagName)};
wxframe.init();
};
需要注意:若POST
到.html
页面, 服务端会报405 Not Allowed
,需要在服务器修改配置,Nginx 如下
location ^~ *.html {
if ($request_method = POST) {
error_page 405 =200 http://$host$request_uri;
}
}
来源:https://zcmzcm.org/post/zcmzcm/%E5%BE%AE%E4%BF%A1%E9%98%B2