国家特定购物车
我目前正在建设一个购物车的客户端,但他希望不同的版本不同的国家,所以为此我创建2子域一个叫europe.website.com和一个叫row.website.com国家特定购物车
On my .htaccess I also have this...
# Make all requests have www in them
RewriteEngine On
RewriteCond %{HTTP_HOST} ^website\.com
RewriteRule ^(.*)$ https://www.website.com/$1 [R=permanent,L]
只是所以它迫使WWW。在网站上,但这应该对子域没有任何影响,但是,因为它具有'https'我有安全风险,例如
本网站提供的安全证书是针对 不同网站的地址发布的。
安全证书问题可能显示试图欺骗您或截获 您向服务器发送任何数据。
我们建议您关闭此网页,并且不要继续浏览该网站 。
所以这就是第一个问题,你可以看到有!第二个问题是它没有重定向到这些子域名,我找不到原因!这里是我已在主要网站上的index.php使用的PHP代码块....
<?php
$lc = "";
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
}
if($lc == array("ab", "ad","ae","af","ag","al","am","ao","aq", "aa", "af", "sq", "am", "ar", "an", "ac", "as", "aw", "ax", "az", "bb", "bd", "bf", "bg", "bh", "bi", "bj", "bm", "bn", "bo", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg","ci","ck","cl","cm","cn","co","cr","cu","cv","cx","dj","dm","do","dz","ec","ee","eg","eh","er","et","fj","fk","fm","fo","fx","ga","gd","ge","gf","gh","gl","gm","gn","gp","gq","gs","gt","gu","gw","gy","hk","hm","hn","ht","id","il","in","io","iq","ir","is","jm","jo","jp","ke","kg","kh","kl","km","kn","kp","kr","kw","ky","kz","la","lb","lc","lr","ls","ly","ma","md","me","mf","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","np","nr","nt","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pw","py","qa","re","ru","rw","sa","sb","sc","sd","sg","sh","sj","sl","sn","so","sr","ss","st","su","sv","sy","sz","tc","td","tf","tg","th","tj","tk","tm","to","tp","tr","tt","tv","tw","tz","ug","um","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","yu","za","zm","zr","zw")){
header("location: https://row.website.com/index.php");
exit();
} else if($lc == array("an", "at", "ba", "be", "ch", "cs", "cy","cz", "de", "dk", "es", "eu", "fl", "fr", "fx", "gi", "gr", "hr", "hu", "ie", "it", "li", "lt", "lu", "lv", "mc", "mt", "nl", "no", "pt", "rs","ro", "se", "sl", "sk", "sm", "tn", "ua", "uk", "xk")){
header("location: https://europe.website.com/index.php");
exit();
}
?>
由于我在英国,我决定“英国”添加到重定向到阵列我欧洲子域名,但没有这样的运气,并已要求各州的其他朋友查看该网站,看看它是否重定向,但仍然没有快乐,因为它只是停留在主要领域!
任何人有任何线索?提前致谢!
-Phillip露水
UPDATE
好了所有我又改变了这一切,我也问过国外的人来检查网站,但它仍然没有重定向!这里是我的代码....
<?php
$lst ['euro'] = array("be","bs",ECT ECT...);
$lst ['other'] = array("ab","aa","af");
$lc = "";
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
}
else $lc = 'en';
if(in_array($lc, $lst['other'])){
header("location: https://www.WEBSITE.com/row/index.php");
exit();
}
elseif (in_array($lc, $lst['euro'])) {
header("location: https://www.WEBSITE.com/europe/index.php");
exit();
}
else {
header("location: https://www.WEBDESITE.com/index.php");
exit();
}
?>
决定摆脱子域的SSL不会对他们的工作,只是增加了2名新的目录,以它来代替!
再次非常感谢所有! -Phillip露水
$lcode = explode(";", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$lcode = explode(",", $lcode['0']);
$lc = $lcode['0'];
但是,也许这让你得到同样的结果...
编辑:只要检查你会得到什么语言的代码? echo $lc;
另外,如果未设置$ _SERVER ['HTTP_ACCEPT_LANGUAGE'],您需要提供默认语言(也许是'en')。
编辑:您还需要重定向到一个默认域,如果语言代码是不是在你的任何两个数组。例如,如果代码是'en'会发生什么?你为什么不在顶部数组中有'en'?
UPDATE:OK,你也有你的PHP逻辑语句错误。使用in_array()
,是这样的:
<?php
$lst_euro = array(array("an", "at", ...);
$lst_other = array(array("ab", "ad", ...);
$lc = "";
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
$lc = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
}
else $lc = 'en';
if(in_array($lc, $lst_other)){
header("location: https://row.website.com/index.php");
exit();
}
elseif(in_array($lc, $lst_euro)) {
header("location: https://europe.website.com/index.php");
exit();
}
else {
header("location: https://row.website.com/index.php");
exit();
}
>
似乎工作得更好,谢谢Stefan,看起来我使用的是国家代码而不是语言代码 – 2012-04-01 15:29:47
您的证书颁发的顶级域名而已,它不包括子域。您必须获得包含子域名的证书... – Michal 2012-04-01 11:38:02
语言≠位置。 – Gumbo 2012-04-01 11:40:10
我可能会删除子域名,然后在根目录中添加新目录,并查看该域名是否适用于Gumbo的 – 2012-04-01 12:46:14