Временная блокировка.htaccess отключает запуск WP Crons?
В настоящее время я работаю на производственном сайте, где htaccess блокирует доступ к сайту пользователей, у которых нет моего IP-адреса:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^11.22.33.44
RewriteCond %{REQUEST_URI} !^/brb/(.)*$ [NC]
RewriteRule ^(.*)$ /brb/index.html [R=307,L]
Режим технического обслуживания, в основном.
Теперь я понял, что кроны WP не работают. И я пытаюсь заставить их запустить (плагин управления WP Cron), выбрав "запустить сейчас". Все они застряли на "Running: (сейчас)", но никогда не выполняются.
Я предполагаю, что это как-то связано с htaccess, но не знаю, как сделать исключение для wp-кронов, не допускающих на мгновение весь общественный транспорт?
1 answers
Директивы .htaccess
блокируют любой HTTP-запрос, не поступающий с вашего IP-адреса. Однако я считаю, что WP Cron также является HTTP-запросом, который исходит от сервера. Таким образом, вам также необходимо сделать исключение для внешнего IP-адреса сервера.
Эти директивы также можно немного упростить...
Например:
RewriteCond %{REMOTE_ADDR} !=203.0.113.111
RewriteCond %{REMOTE_ADDR} !=11.22.33.44
RewriteRule !^brb/ /brb/index.html [R=307,L]
Где 203.0.113.111
- это любой IP-адрес вашего сервера.
Оператор =
на условном шаблоне делает его лексикографическим сравнение строк, в отличие от регулярного выражения, поэтому нет необходимости в привязке начала строки (^
) или экранировании буквенных точек (чего вы все равно не делаете, но строго должны быть).
Нет необходимости в дополнительном условии, которое проверяет, что URL-путь не начинается /brb/
, так как это может быть включено в RewriteRule
шаблон. (И нет необходимости в группах захвата, так как у вас нет никаких обратных ссылок.)