ProcessWire httpUrl不带www的解决方法

用百度的推送接口一直失败,提示not_same_site的错误,翻了下官方的文档

字段是否必选参数类型说明
successint成功推送的url条数
remainint当天剩余的可推送url条数
not_same_sitearray由于不是本站url而未处理的url列表
not_validarray不合法的url列表

这个错误的解释是不是本站url,后来debug找出了推送的url列表都是不带www的url,而在百度后台提交的是带有www的站点,并且推送接口提供的调用地址是:

http://data.zz.baidu.com/urls?site=www.towait.com&token=QzuEdddddddddd

接口的网址参数中带有了www,但是推送的url中不带www,两者不一致,所以导致了非本站url的错误

检查了各种路由rewrite都没找出问题,在页面中将$page->httpUrl echo出来的结果也是不带www的地址,最后到nginx中查找一下server_name的配置项,原来的写法是

server_name towait.com www.towait.com;

将它的顺序对调一下写成

server_name  www.towait.com towait.com;

重启一下nginx,居然成功解决了这个问题! (笑哭脸)

Post Comment