我正在处理的站点正在使用顶级域(.nl
/ .be
)来定义其语言以及它应该使用的数据库。这允许同一网站用于多个域,每个域都有自己的内容,但布局相同。
一切都很好,除非它涉及 Cron 工作。域用于定义要通过$_SERVER['HTTP_HOST']
. 使用 cronjob,直接调用文件而不使用域(本地域层次结构),因此它无法派生它应该使用的数据库/语言。
有没有一种让 cron 作业使用相同原理的好方法,或者我是否坚持必须发送一个变量来定义它应该使用哪种数据库/语言?
您可以在环境变量中推送一个值:
@daily HTTP_HOST=www.example.nl php /path/to/script.php
环境变量应该出现在里面$_SERVER
以使其正常工作。
最简单的方法是将 cron 放在 web 根目录中,使用 wget http://example.com/cron.php或 GET 并且 http_host 将自动设置 - 确保您构建逻辑以防止通过 htaccess 或限制执行滥用对某些 ip