动态href属性(多语言网站)

时间:2019-07-10 15:05:23

标签: javascript php .htaccess mod-rewrite

我会尽量保持清晰。

我要使用以下内容添加页脚和导航栏:

<?php include 'includes/nav.php';?>
<?php include 'includes/footer.php';?>

导航栏上有一个语言按钮,如下所示:

<ul class="language">
   <li class="en"><a href="...."></a></li>
</ul>

我的网站语言是英语。但是我在文件夹 / de / 中有它的德语副本。

问题/问题:

进行动态更改语言。

或者换句话说,当我进入 www.website.com/contact 页面并点击<a href="...."></a>进入 www.website.com/de/联系人页面。

我接受任何类型的解决方案。不管它是.htaccess中的mod_rewrite,nav.php中包含的简单php规则还是某种javascript代码。

如果解释不够清楚,请在下面键入一个问题,我会立即回复更详细的信息。

1 个答案:

答案 0 :(得分:0)

在nav.php中,您可以使用$ _SERVER [“ REQUEST_URI”]来获取当前URL的路径。

然后,如果您位于www.website.com/contact,则$ _SERVER [“ REQUEST_URI”]为 / contact ,如果您位于www.website.com/de/contact,然后是 / de /联系人

您可以对其进行评估,以确定您是否在/ de /下。这里是示例代码:

$prefix = "";

$uri = $_SERVER['REQUEST_URI'];

if ( substr($uri,0, 4) == "/de/" ) {
    $prefix = '/de';
}

网址应为

<ul class="language">
   <li class="en"><a href="<?php echo $prefix ?>/contact"></a></li>
</ul>

如果您位于根目录(不是/ de /)中,则$ prefix变量为空,并且不会显示在url中。