Rediriger le TLD en fonction du pays de l'utilisateur
P粉761718546
P粉761718546 2024-01-10 17:25:21
0
1
438

Je ne crois pas que cela soit possible avec .htaccess. J'ai plusieurs domaines :

domain.mx
domain.com
domain.ca

Je souhaite forcer la localisation d'un TLD en fonction de l'emplacement de l'utilisateur. Si un utilisateur vient du Mexique et visite domain.com/test/a/, il sera dirigé vers domain.mx/test/a lors de sa première visite. À partir de là, le site Web conservera automatiquement l'utilisateur en .mx

C'est ma solution PHP actuelle, mais je ne sais pas si la réécriture des règles est possible ou plus rapide :

add_action( 'template_redirect', 'my_callback' );
function my_callback() {
 $userCountry = $_SERVER["HTTP_CF_IPCOUNTRY"];
 $baseurl = $_SERVER[HTTP_HOST];
 $url = $_SERVER[REQUEST_URI];
 
          // Mexico
     if (($userCountry == "MX") && (strpos($baseurl, 'mx') == false)) {
     $newurl = "https://domain.mx" . $url;
     wp_redirect( $newurl, 301 );
     exit();
 }

P粉761718546
P粉761718546

répondre à tous(1)
P粉477369269

Basé sur : https://serverfault.com/questions/357716/can-apache-conditionally-perform-a-rewrite-from-a-custom-http-header

RewriteCond %{HTTP:CF-IPCountry} = MX
RewriteRule .* https://domain.mx%{REQUEST_URI} [R=301,L,QSA]

Documentation : https://httpd.apache.org/docs /2.4/mod/mod_rewrite.html#rewritecond

Mais considérez également que les utilisateurs peuvent délibérément essayer d'accéder à des sites Web qui ne correspondent pas à leur emplacement, par exemple : les utilisateurs hispanophones au Canada. Je recommande de permettre à l'utilisateur de définir les paramètres régionaux qu'il souhaite, de stocker cette préférence dans un cookie et d'utiliser %{HTTP_COOKIE} pour contrôler le comportement de remplacement.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal