根據使用者所在國家/地區重新導向 TLD
P粉761718546
P粉761718546 2024-01-10 17:25:21
0
1
384

我不相信這對 .htaccess 是可能的。我有多個域:

domain.mx
domain.com
domain.ca

我想根據使用者位置強製本地化 TLD。如果使用者來自墨西哥,並造訪domain.com/test/a/,他們將在第一次造訪時被導向到domain.mx/test/a。從那裡,網站將自動將用戶保留在 .mx

這是我目前的 PHP 解決方案,但我不確定重寫規則是否可能或更快:

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

全部回覆(1)
P粉477369269

基於: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]

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

但也要考慮到用戶可能故意嘗試造訪與其位置不符的網站,例如:加拿大的西班牙語用戶。我建議允許使用者設定他們想要的區域設置,將該首選項儲存在 cookie 中,並使用 %{HTTP_COOKIE} 來控制重寫行為。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!