前言
這幾日,由於遭到他人的惡意投訴舉報,導致了微信中閱讀業務的根域名被屏蔽,提示
由於我司是做網絡文學的,作者的內容中不可避免地會出現些微露骨的內容,但是這些內容是經過了編輯審核之后才公開的,也不至於太露骨,但舉報就被封禁了。
公司的用戶有很多是通過微信公眾號進行閱讀,這一封,就許多用戶過來反饋了。
切換域名之痛
既然根域名被封了,就只能切換域名了,因為之前代碼中有不少的地方域名寫死了,沒有提取成公共變量,改了好久,才替換成了新的域名。
眼看已經修改完了,線上也正常了,都已經晚上9點多,准備下班回家了。就這時候,群里又反饋網站進不去了,打開一開,又**被封了,當時的心情真是想問候一下惡意舉報人的全家了!
沒法子,繼續換域名,還好之前提前備案了幾個域名,沒想到現在全用上了。
有了上一次的經驗,現在修改起來也快多了,修改上線完事都已經 10 點多了,惡意舉報的人這時候也消停了下來沒有繼續投訴了,我們也終於可以下班,害的我們大周六的過來加了一天的班!
第二天,也就是周日。群里又反應被封了,真是崩潰。
最開始的域名被微信封禁后,公司第一時間進行了申訴,此時收到通知,說檢測后沒有違規內容,就進行了解封。
可能是別人惡意利用了微信的封禁系統,此時覺得微信的這套系統做的真爛!於是我們開發人員又是一番替換,把現在被封的域名切換了回去。
經過這幾波操作,這兩天網站的收入驟減,那幫使壞的人是趁你病要你命的節奏!
痛定思過
總結了一下這次事件的教訓,主要的原因就是因為小說的內容頁被頻繁惡意舉報導致域名被封。 這就導致了即使換了域名,比如支付,登錄都受到了影響,而且微信支付限制了每個月修改支付域名的次數,不得已我們只好換了另外一個服務號才重新打通了支付。
接下來需要做的就是,將可能還會被舉報的小說內容頁的域名拆分出去,不和網站主要域名一樣。
比如首頁、個人中心是 m.aaa.com
, 將內容頁的域名修改成 m.bbb.com
。
我們的閱讀頁 URL 地址為 https://m.aaa.com/book/1010545066/385773672
,則在 nginx 匹配到 ^/book/([0-9]+)/([0-9]+)
就進行跳轉到 http://m.bbb.com/book/1010545066/385773672
,於是,修改 nginx 的配置,對 URL 進行匹配。
server {
listen 443;
server_name m.aaa.com;
# ...
set $temp_content_host "http://m.bbb.com";
location ~ ^/book/([0-9]+)/([0-9]+) {
# If WeChat browser, jump to temporary domain name
if ($http_user_agent ~* (Micromessenger) ) {
return 301 $temp_content_host$request_uri;
}
proxy_pass http://domainAserver;
}
location / {
proxy_pass http://domainAserver;
}
}
server {
listen 80;
server_name m.bbb.com;
# ...
location / {
proxy_pass http://domainAserver;
}
}
因為只有在微信瀏覽器內部,才存在被封禁的風險,而在其他瀏覽器內沒有,一旦被微信封禁,內容頁的域名需要一起更換,這樣可能會不利於搜索引擎的收錄,因此加了一個判斷
瀏覽器 UA,微信的 UA 是 Micromessenger 如果是在微信瀏覽器內部,nginx 才 301 跳轉到 m.bbb.com
,如果不是,則保持之前的域名不變。
這樣就解決了問題,一旦 m.bbb.com
域名被封禁了,就是 aaa 域名的 nginx 修改 $temp_content_host 這個變量的值為新的域名然后 reload 一下 nginx 即可。
總結
可能是公司戰略上的問題,太過於依賴微信的公眾號,在微信的生態中,微信想弄死你輕而易舉,你卻無可奈何,盡量把用戶引導到客戶端上才是上上策。