基于PHP语言的URL别名


URL alias based on language in PHP

我创建了一个多语言酒店网站。URL如下所示:

www.blahbrah.com/apartments.php?lang=en-

我现在想要的是一种不同的语言,比如德语,有以下URL

www.blahbrah.com/somethingElseHere.php?lang=去

我想,为了帮助我的SEO网站。

我想我必须使用URL别名,但我不知道如何开始。

有什么想法吗?

您必须编写这样的代码:

session_start();
if (!isset($_SESSION['lang'])){
    $_SESSION['lang'] = "de";
    header("location:index.php?lang=de");
}
if (isset ($_GET["lang"]) && ($_GET["lang"]=="de" || $_GET["lang"]=="en"))
{
    $_SESSION["lang"]=$_GET["lang"]; 
}
function ln () {
    if ($_SESSION["lang"]=="de"){return false;};
    if ($_SESSION["lang"]=="en"){return true;};
}
function lang(){
    return $_SESSION["lang"];
}
function mk_link(){
    $return='';
    $except=func_get_args();
    foreach ($_GET as $key=>$value) if (!in_array($key,$except) && $value!='') $return.='&'.$key.'='.$value;
    return $return;
}

然后在你的网站上,你必须这样使用它:

<?php echo ln()?"Home":"Nach Haus;";?>

尽管如此,这是一个粗略的方法,您还必须过滤GET变量以确保它们的安全。

但是,我强烈建议您使用一个框架,比如cake、codeigniter或其他方便的东西。

您可以在.htaccess文件中使用mod_rewrite,使类似"www.yourdomain.com/german.html"的URL指向相应的index.php?lang=de。

类似于:

RewriteEngine on
RewriteRule ^german'.html$ /index.php?lang=de

你可以用mod_rewrite做很多事情。在这里查看更多信息http://httpd.apache.org/docs/current/mod/mod_rewrite.html.