2014-09-24 54 views
0

我在localhost上做了一个网站。然后我将它上传到不同的服务器,没有问题。但是,这次我尝试将网络上传到另一台服务器,而在这个网站上,与其他网站上的代码完全相同的代码无法正常工作。我简化了这个错误,并且必须符合下列其中一条。上传我的网站时出现PHP问题?

如果我在我的网站上输入网址,我的代码必须自动将默认语言添加到URL(即es),如果尚未指定此语言。例如,如果我输入mydomain.com,则必须将其转换为mydomain.com/es

这里的代码(注:郎咸平在htaccess的声明,并在URL推出的第一个参数的名称,在这种情况下,语言):

的index.php代码:

<?php 
    $idiomas = array("ES", "GL", "EN"); 
    if (!(isset($_GET['lang']) && $_GET['lang'] == "admin")) { 
     require_once("pages/language.php"); 
    } 
?> 

language.php CODE:

<?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上的URL,但它开始做到这一点每毫秒,永久重新加载和重新加载页面。我意识到当mydomain.com/es已经在URL中时,language.php的第一个条件如果没有保留,那就应该保留。

我不知道为什么这个代码总是在不同的服务器上工作,而不是在这个服务器上。有什么想法吗?先谢谢你。

+1

是否启用国防部重写包括在Apache? – 2014-09-24 09:44:00

+0

@ThomasHambach你是对的!该服务器没有启用mod_rewrite。 – forvas 2014-09-24 10:55:09

回答

0

根据您的担心,网址会转换为其他网址,这可能是您的问题,原因是$ _GET ['lang']不会存在于其他转换的网址上。

请检查您的代码目录中的.htaccess文件。

0

会话处理存在问题 您应该从session_start()开始; 也必须设置在“郎”变量时重定向... 另一种选择是在网址的结尾?LANG =参数(GET方法)

echo '<meta http-equiv="refresh" content="0; url=/'.strtolower($idiomas[0]).'?lang='.$idiomas[0].'">';