【问题标题】:My PHP Url won't redirect我的 PHP 网址不会重定向
【发布时间】:2016-04-23 14:03:58
【问题描述】:

我正在使用一个带有脚本的 php 文件来根据用户位置将 1 个 url 重定向到各种 url,但它卡住了。根本不会重定向。问题是 - 它一直工作到昨天......

    
<!DOCTYPE html>
<html>
<head>


<script language="Javascript" src="http://gd.geobytes.com/gd?after=-1&variables=GeobytesLocationCode,GeobytesCode,GeobytesInternet"> 
</script>
<script>
function redirect(){
var sub= getSub();
var country= sGeobytesInternet;
if(country  == "BE"){window.location = "http://sitelink1.com/?subid="+sub}
else if(country  == "FR"){window.location = "http://sitelink2.com/?subid="+sub}
else if(country  == "DE"){window.location = "http://sitelink3.com/?subid="+sub}
else if(country  == "AT"){window.location = "http://sitelink4.com/?subid="+sub}
else if(country  == "CH"){window.location = "http://sitelink5.com/?subid="+sub}
else if(country  == "US"){window.location = "http://sitelink6.com/?subid="+sub}
else if(country  == "PT"){window.location = "http://sitelink7.com/?subid="+sub}
else if(country  == "BG"){window.location = "http://sitelink8.com/?subid="+sub}
else if(country  == "HU"){window.location = "http://sitelink9.com/?subid="+sub}
else if(country  == "PL"){window.location = "http://sitelink10.com/?subid="+sub}
else if(country  == "SK"){window.location = "http://sitelink11.com/?subid="+sub}
else if(country  == "IT"){window.location = "http://sitelink12.com/?subid="+sub}
else {window.location = ""+sub}
}
function getSub(){
regex = /subid=([\w-]*)/;
url =window.location.href;
if(-1 != url.indexOf("subid")){
var id = url.match(regex)[1];
return id;
}else{
return '';
}
}
redirect()
</script>
</head>
<body>
</body>
</html>

【问题讨论】:

  • 您的网址存在一些问题:gd.geobytes.com/…。我尝试打开它,但它目前不可用。
  • 我已经更新了我的答案。你可以尝试一个小样本。我使用了另一个 geoIP 提供商。它对你有好处。

标签: javascript php html redirect


【解决方案1】:

我认为可以改进您的代码。我建议您更改 geoIp 提供商。让我们看看我的例子:

<script  src="https://code.jquery.com/jquery-2.2.3.min.js"></script>
<script type="text/javascript">

    $(function() {

        $.getJSON('http://ipinfo.io/json', function(data) {

            /*
                {
                    "ip": "46.23.xxx.xxx",
                    "hostname": "host.example.com",
                    "city": "Baku",
                    "region": "Baku City",
                    "country": "AZ",
                    "loc": "40.000,40.000",
                }
            */

            var
                map,
                countryCode = data.country,
                getParameter;

            /* 
                http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript?answertab=active#tab-top 
            */
            getParameter = function(name) {

                var
                    regex,
                    results;

                url = window.location.href;
                name = name.replace(/[\[\]]/g, "\\$&");
                regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)");
                results = regex.exec(url);

                if (!results) return null;
                if (!results[2]) return '';

                return decodeURIComponent(results[2].replace(/\+/g, " "));
            }

            map = {

                "AZ": 'http://google.az',
                "DE": 'http://google.de',
                "FR": 'http://google.fr',
                "PL": 'http://google.pl',
                "IT": 'http://google.it',
                "CH": 'http://google.ch',
                "SK": 'http://google.sk',
                "AT": 'http://google.at',
                "US": 'http://google.us',
                "BE": 'http://google.be',
                "PT": 'http://google.pt',
                "BG": 'http://google.bg',
                "HU": 'http://google.hu',
            };

            if (map[countryCode] !== 'undefined') {

                location.href = map[countryCode] + '?subid=' + getParameter('subid');
            }
            else {

                location.href = 'http://google.com' + '?subid=' + getParameter('subid');
            }
        });
    });

</script>

【讨论】:

    【解决方案2】:

    尝试在脚本中添加分号。

        
    <!DOCTYPE html>
    <html>
    <head>
    
    
    <script language="Javascript" src="http://gd.geobytes.com/gd?after=-1&variables=GeobytesLocationCode,GeobytesCode,GeobytesInternet"> 
    </script>
    <script>
    function redirect(){
    var sub= getSub();
    var country= sGeobytesInternet;
    if(country  == "BE"){window.location = "http://sitelink1.com/?subid="+sub;}
    else if(country  == "FR"){window.location = "http://sitelink2.com/?subid="+sub;}
    else if(country  == "DE"){window.location = "http://sitelink3.com/?subid="+sub;}
    else if(country  == "AT"){window.location = "http://sitelink4.com/?subid="+sub;}
    else if(country  == "CH"){window.location = "http://sitelink5.com/?subid="+sub;}
    else if(country  == "US"){window.location = "http://sitelink6.com/?subid="+sub;}
    else if(country  == "PT"){window.location = "http://sitelink7.com/?subid="+sub;}
    else if(country  == "BG"){window.location = "http://sitelink8.com/?subid="+sub;}
    else if(country  == "HU"){window.location = "http://sitelink9.com/?subid="+sub;}
    else if(country  == "PL"){window.location = "http://sitelink10.com/?subid="+sub;}
    else if(country  == "SK"){window.location = "http://sitelink11.com/?subid="+sub;}
    else if(country  == "IT"){window.location = "http://sitelink12.com/?subid="+sub;}
    else {window.location = ""+sub;}
    }
    function getSub(){
    regex = /subid=([\w-]*)/;
    url =window.location.href;
    if(-1 != url.indexOf("subid")){
    var id = url.match(regex)[1];
    return id;
    }else{
    return '';
    }
    }
    redirect()
    </script>
    </head>
    <body>
    </body>
    </html>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-20
      • 2012-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      相关资源
      最近更新 更多