PHP检查子域和语言,然后相应地重定向将不会停止刷新

时间:2014-02-01 21:16:52

标签: javascript php refresh

所以,我已经得到了下面的脚本,现在的问题只有一个,它不会停止刷新..我已经尝试了很多条件,它总是这样做。

你可以帮忙吗? 注意:我必须保留刷新脚本,没有标题位置或http刷新。

<?php                       

// language start

require ('language.functions.php');

$language = language(); 

    // Whether or not to output debug code
    //DEFINE("DEBUG", 1);
    DEFINE("DEBUG", 0);

    // An array of actual subdomains on the server
    $real_subdomains = array('us','emea','asia');

    // The domain info for this site
    $domain_name = 'example';
    $domain_tld = '.com';

    // Set a variable to hold the host info
    $host_info = '';

    // Check to see if 'register_globals' is on

    // if(ini_set('register_globals' == 1))
    //  {
        $host_info = $HTTP_HOST;
    //  }
    // else
    //  {
    //  $host_info = $_SERVER['HTTP_HOST'];
    //  }

    // Break up the pieces of the host info
    $parts = explode(".", $host_info);

    // Pull the 'subdomain' for the url
    $subdomain = $parts[0];

    (DEBUG) ? print "Host Info: " . $host_info : '';

    // Check that the subdomain isn't 'www' or the domain name
    if(($subdomain != "www") && ($subdomain != $domain_name))
        {
        // Is the subdomain a real domain?
        if(in_array($subdomain, $real_subdomains))
        {
        //  exit

        }
        else
        {
    // refresh browser to correct domain
    $newurl = 'http://' . $language . '.' . $domain_name . $domain_tld  . $_SERVER['REQUEST_URI'];
         echo "<script type='text/javascript'> document.location = '$newurl' </script>";
        }
        }

    ?>

1 个答案:

答案 0 :(得分:0)

我会检查子域是否也不是语言代码:)

if($subdomain != "www" && $subdomain != $domain_name && $subdomain != $language)

if(!in_array($subdomain,array("www",$domain_name,$language)))

比重定向到例如。 http://pl.stackoverflow.com你不会继续循环。我会认为这个条件是在

之后
$language = language();

如果不需要重定向,只是为了避免其他操作。

此外,您应该考虑重写代码。我不确定它是否具有防弹功能(www.ex.example.com,www.pl.ex.example.com,pl.ex.example.com,ex.example.com等)。