Могу ли я проверить режим обслуживания перед перенаправлением на субдомен?

В настоящее время я работаю над сайтом, который будет иметь несколько поддоменов, которые будут нуждаться в перенаправлении по происхождению страны, но на сервере нет модуля mod_geoip поэтому я не могу использовать перенаправление .htaccess , например:

 GeoIPEnable On GeoIPDBFile /path/to/GeoIP.dat # Canada RewriteEngine on RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CA$ RewriteRule ^(.*)$ http://ca.abcd.com$1 [L] 

Я провел некоторое исследование и обнаружил, что Cloudflare позволяет использовать GEOlocation, и я могу использовать (пример кода):

 $country_origin = strtolower($_SERVER['HTTP_CF_IPCOUNTRY']); in a switch like (code is an example, hasn't been tested): $country_origin = strtolower( $_SERVER[ "HTTP_CF_IPCOUNTRY" ] ); $clean_url = preg_replace("(^https?://)", "", get_site_url() ); if ( !empty( $country_origin ) && $country_origin != 'us' ) { switch( $country_origin ) { case 'et'; header( 'Location: http://' . $country_origin . '.' . $clean_url ); break; case 'us'; header( 'Location: http://' . $country_origin . '.' . $clean_url ); break; case 'ca'; header( 'Location: http://' . $country_origin . '.' . $clean_url ); break; } } 

Поскольку каждый субдомен будет иметь свою собственную установку WordPress, поскольку содержимое будет переписано и управляться отдельно, как я могу проверить, включен ли сайт в режиме обслуживания, чтобы остановить / предотвратить перенаправление?

Каждый раз, когда WordPress вставляет блог в режим обслуживания, он создает файл в корне каталога установки.

файл содержит строку, связанную с обновляемым плагином / темой / ядром. Его имя – .maintenance (не имеет имени, только расширение).

Файл остается там до завершения процесса, поэтому вы можете проверить, существует ли файл, выполнив следующие действия:

 if( file_exists(ABSPATH .'/.maintenance') ) { // Stop redirection here } 

Который будет тем, что вы ищете.