我的PHP Url不会重定向

时间:2016-04-23 14:03:58

标签: javascript php html redirect

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

    
<!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>

2 个答案:

答案 0 :(得分:0)

我认为可以改进您的代码。我建议你改变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>

答案 1 :(得分:0)

尝试在您的脚本中添加分号。

    
<!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>