Я создал задание крона для инициирования URL во времена набора, который в свою очередь запускает сценарий импорта продукта. Но по некоторым причинам часть триггерного URL с параметрами снята.
Я установил задание крона как это:
/usr/bin/wget -O /dev/null http://domain.nl/wp-cron.php?import_key=XXXXXXXXXX&import_id=3&action=processing
Но это только работает http://domain.nl/wp-cron.php?import_key=XXXXXXXXXX
. Где последняя часть, которая на самом деле говорит сценарий, что сделать?
Кто знает, почему это ведет себя как это и как заставить это работать?
Из-за этого вы фактически говорите cron запустить / usr / bin / wget -O / dev / null http://domain.nl /wp-cron.php?import_key=XXXXXXXXXX
в фоновом режиме, а затем выполнить действие = обработка
. И это то, что cron делает для вас - то, что вы ему сказали.
Чтобы обойти это, вам нужно избежать символа &
, чтобы он обрабатывался как часть URL-адреса, а чем интерпретируется как управляющий символ.
Самое простое решение - заключить URL в кавычки.
Помимо уже упомянутого амперсанда, вы также должны быть осторожны с символом %
в записи cron. %
в записи cron будет интерпретироваться как разрыв строки и должен быть экранирован обратной косой чертой ( \%
). Убедитесь, что в import_key
, который вы подвергали цензуре, нет такого символа. Кроме того, URL-адреса часто содержат %
для экранирования определенных символов, таких как пробел (),
=
и т. Д.