我正在尝试设置一个 cron 作业来每天运行此命令:
wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
网站 example.com 位于我运行 cron 作业的同一台服务器上。但我的日志中不断出现错误 403:
"GET /wp-cron.php?doing_wp_cron HTTP/1.1" 403 428 "-" "Wget/1.17.1 (linux-gnu)"
当我尝试从浏览器访问相同的 URL 时,它可以正常工作:
"GET /wp-cron.php?doing_wp_cron HTTP/1.1" 200 304 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
所以我猜想我的 apache2.conf(或 .htaccess 文件)中有些东西阻止了来自我自己的服务器的请求,但我不知道该查找什么。知道哪一行可能是导致这种情况的原因吗?
答案1
我的 .htaccess 中有一个重写条件,阻止了一些用户代理,我猜包括空用户代理。添加后就--user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0"
成功了:
wget --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" http://example.com/wp-cron.php
也可以看看:https://unix.stackexchange.com/questions/139698/why-would-curl-and-wget-result-in-a-403-forbidden