Временная блокировка.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-кронов, не допускающих на мгновение весь общественный транспорт?

Author: FTLRalph, 2020-04-10

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 шаблон. (И нет необходимости в группах захвата, так как у вас нет никаких обратных ссылок.)

 3
Author: MrWhite, 2020-04-10 23:01:44