我在localhost上创建了一个网站。然后我把它上传到不同的服务器,没问题。但是,这次我尝试将网络上传到另一台服务器,而在这一台服务器中,代码与其他网站完全相同,但效果不佳。我正在简化错误,必须在以下其中一行。
如果我在网站上输入网址,我的代码必须自动将默认语言添加到网址( es ),如果还没有指定的话。例如,如果我输入 mydomain.com ,则必须将其转换为 mydomain.com/es 。
这里的代码(注意:lang是在htaccess中声明的,并且是URL上引入的第一个参数的名称,在本例中是语言):
index.php代码:
<?php
$idiomas = array("ES", "GL", "EN");
if (!(isset($_GET['lang']) && $_GET['lang'] == "admin")) {
require_once("pages/language.php");
}
?>
language.php代码:
<?php
if (isset($_GET['lang']) && $_GET['lang'] != "") {
switch ($_GET['lang']) {
case strtolower($idiomas[0]):
case strtolower($idiomas[1]):
case strtolower($idiomas[2]):
case 'admin':
$_SESSION['lang'] = $_GET['lang'];
break;
default: {
header("Location: ".ROOT);
}
}
}
else {
if (!isset($_SESSION['lang']) || $_SESSION['lang'] == "") {
echo '<meta http-equiv="refresh" content="0; url='.strtolower($idiomas[0]).'">';
exit;
}
}
?>
现在,正在发生的事情是:您输入 mydomain.com ,并在网址上转换为 mydomain.com/es ,对,但它开始每个毫秒执行此操作,重新加载并重新加载页面。我意识到当 mydomain.com/es 已经在网址上时,在 language.php 中, if 的第一个条件未被保留,应该保留。
我不知道为什么这段代码总是在不同的服务器上工作而不是在这个服务器上。好吗,拜托?提前谢谢。
答案 0 :(得分:0)
根据您的关注,网址会转换为其他网址,这可能是您遇到问题的原因,因为其他转换后的网址上不会存在$ _GET ['lang']。
请检查代码目录中的.htaccess文件。
答案 1 :(得分:0)
会话处理存在问题 你应该从session_start()开始; 你也必须在重定向时设置“lang”变量... 另一个选择是在url的末尾包含?lang =参数(GET方法)
echo '<meta http-equiv="refresh" content="0; url=/'.strtolower($idiomas[0]).'?lang='.$idiomas[0].'">';