所以,我已经得到了下面的脚本,现在的问题只有一个,它不会停止刷新..我已经尝试了很多条件,它总是这样做。
你可以帮忙吗? 注意:我必须保留刷新脚本,没有标题位置或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>";
}
}
?>
答案 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等)。