ProcessWire httpUrl不带www的解决方法
用百度的推送接口一直失败,提示not_same_site
的错误,翻了下官方的文档
字段 | 是否必选 | 参数类型 | 说明 |
---|---|---|---|
success | 是 | int | 成功推送的url条数 |
remain | 是 | int | 当天剩余的可推送url条数 |
not_same_site | 否 | array | 由于不是本站url而未处理的url列表 |
not_valid | 否 | array | 不合法的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,居然成功解决了这个问题! (笑哭脸)