Je travaille actuellement sur un site qui comportera plusieurs sous-domaines nécessitant une redirection basée sur le pays d'origine mais le module mod_geoip
n'est pas autorisé sur le serveur. Je ne peux donc pas utiliser une redirection .htaccess
, telle que:
GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat
# Canada
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CA$
RewriteRule ^(.*)$ http://ca.abcd.com$1 [L]
J'ai fait des recherches et trouvé que Cloudflare permet GEOlocation et que je peux utiliser (exemple de code):
$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;
}
}
Étant donné que chaque sous-domaine aurait sa propre installation WordPress car le contenu serait réécrit et géré séparément, comment puis-je vérifier si le site est activé en mode maintenance pour arrêter/empêcher la redirection?
Chaque fois que WordPress insère un blog en mode maintenance, il crée un fichier à la racine de votre répertoire d'installation.
le fichier contient une chaîne liée au plugin/theme/core en cours de mise à jour. Son nom est .maintenance
(il n'a pas de nom, seulement une extension).
Le fichier y reste jusqu'à la fin du processus. Vous pouvez donc vérifier si le fichier existe en procédant comme suit:
if( file_exists(ABSPATH .'/.maintenance') ) {
// Stop redirection here
}
Quel serait ce que vous cherchez.