为什么我的PHP不能直接访问我的西班牙语网站?

时间:2015-01-20 21:34:51

标签: php redirect subdirectory

我的代码适用于我的所有网站,但以“es”开头的网站除外。每当我尝试指向这些网站时,都会将我带回index.html

这是我的index.php代码:

<?php 
/*
*
License: Creative Commons Attribution 3.0 Unported
License URL: http://creativecommons.org/licenses/by/3.0/
 *
 */
include "app/config.php";
include "app/detect.php";

if ($page_name=='') {
    include $browser_t.'/index.html';
    }
elseif ($page_name=='index.html') {
    include $browser_t.'/index.html';
    }
elseif ($page_name=='es/index.html') {
    include $browser_t.'/es/index.html';
}

else
    {
        include $browser_t.'/404.html';
    }

?>

我正在关联my site,以便您说出我的意思。在右上角有一个超级链接,上面写着“Español”,当你点击它时,它应该会带你到你当前所在页面的西班牙语版本。相反,它只是简单地将您带到索引选项卡并更改子目录,但我的翻译页面不会出现。

在config.php中我有以下内容:

<?php
/*
 * 
License: Creative Commons Attribution 3.0 Unported
License URL: http://creativecommons.org/licenses/by/3.0/
 *
 */
$current_page_uri = $_SERVER['REQUEST_URI'];
$part_url = explode("/", $current_page_uri);
$page_name = end($part_url);
$email_id = "support@elitecomps.com";
?>

我会在这里添加我的detect.php代码,但它是一个大文件,而不是我试图解决的问题所以我只会链接它。

PS 一切都是适当的联系,我已经三重检查了一切。我唯一怀疑的是我的index.php,我不确定为什么。

2 个答案:

答案 0 :(得分:0)

$part_url = explode("/", $current_page_uri);
$page_name = end($part_url);

当网址为“es / index.html”时,该代码会将$page_name分配给“index.html”,因为您只对最后/之后的内容感兴趣。< / p>

一种方法是使用strrpos检查字符串的结尾,例如

if(strrpos("es/index.html", $current_page_uri) !== FALSE)
    // Go to spanish site
else if(strrpos("index.html", $current_page_uri) !== FALSE)
    // Normal index page

您还可以检查$part_url中的倒数第二个元素,并检查它是否为“es”或任何其他语言代码。

答案 1 :(得分:0)

如果我的逻辑正确,你应该在这里使用另一个条件

取代:

if ($page_name=='') {
    include $browser_t.'/index.html';
    }
elseif ($page_name=='index.html') {
    include $browser_t.'/index.html';
    }
elseif ($page_name=='es/index.html') {
    include $browser_t.'/es/index.html';
}

else
    {
        include $browser_t.'/404.html';
    }

if ($current_page_uri=='') {
    include $browser_t.'/index.html';
    }
elseif ($current_page_uri=='index.html') {
    include $browser_t.'/index.html';
    }
elseif ($current_page_uri=='es/index.html') {
    include $browser_t.'/es/index.html';
}

else
    {
        include $browser_t.'/404.html';
    }

我认为您打算使用$page_name作为检测器。但是你想要比较es/index.html的价值实际上就是你的uri。