URL псевдоним на основе языка в PHP - PullRequest
0 голосов
/ 30 января 2012

Я создал многоязычный сайт отеля. URL-адреса выглядят следующим образом:

www.blahblah.com / apartments.php? Ланг = еп

Теперь я хочу, чтобы другой язык, например, немецкий, имел следующий URL.

www.blahblah.com / somethingElseHere.php? LANG = де

Я хочу это, чтобы помочь моему SEO для сайта.

Я думаю, что должен использовать псевдоним URL, но я не уверен, как начать.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 30 января 2012

Вам нужно будет написать фрагмент кода, подобный следующему:

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 или что-то ещепод рукой.

1 голос
/ 30 января 2012

Вы можете использовать mod_rewrite в файле .htaccess, чтобы URL, например, "www.yourdomain.com/german.html", приводил к соответствующему 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.

...