Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中基于语言的URL别名_Php_Url_Seo_Alias - Fatal编程技术网

PHP中基于语言的URL别名

PHP中基于语言的URL别名,php,url,seo,alias,Php,Url,Seo,Alias,我创建了一个多语言酒店网站。URL如下所示: www.blahblah.com/epartments.php?lang=en 我现在想要的是另一种语言,比如德语,有以下URL: www.blahblah.com/somethingelseere.php?lang=de 我想,为了帮助我的网站搜索引擎优化 我想我必须使用URL别名,但我不确定如何开始 有什么想法吗?您可以在.htaccess文件中使用mod_rewrite,使类似“www.yourdomain.com/derman.html”的U

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

www.blahblah.com/epartments.php?lang=en

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

www.blahblah.com/somethingelseere.php?lang=de

我想,为了帮助我的网站搜索引擎优化

我想我必须使用URL别名,但我不确定如何开始


有什么想法吗?

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

比如:

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

你可以用mod_rewrite做很多事情。查看此处的更多信息。

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

比如:

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

你可以用mod_rewrite做很多事情。在这里查看更多信息。

您必须编写如下代码:

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;";?>
然后在你的网站上,你必须像这样使用它:

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或其他方便您使用的框架。

您必须编写如下代码:

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;";?>
然后在你的网站上,你必须像这样使用它:

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或者其他对你方便的东西。

正如@Michal所说,如果你的URL有一个非常结构化的格式,你可以使用mod_rewrite@mugur你所建议的对他没有帮助,因为他需要的是在URL中区分该站点的Qish语言版本。。。如果您限制URL中语言开关的存在,则可能会适得其反。。。至少在我看来,你不这么认为吗?我同意,但实际上他正在使用GET变量来改变语言,所以他要区分语言。当然,mode_rewrite更优雅:)啊,对不起,你的脚本遗漏了一些东西。。。将链接重命名为符合lang的好主意…+添加mod_rewrite到它,完美…:)另外,正如@Michal所说,如果你的URL有一个非常结构化的格式,你可以使用mod_rewrite。你所建议的@mugur对他没有帮助,因为他需要的是在URL中区分网站的语言版本。。。如果您限制URL中语言开关的存在,则可能会适得其反。。。至少在我看来,你不这么认为吗?我同意,但实际上他正在使用GET变量来改变语言,所以他要区分语言。当然,mode_rewrite更优雅:)啊,对不起,你的脚本遗漏了一些东西。。。将链接重命名为符合lang的好主意…+添加mod_rewrite到它,完美…:)我正在我的本地主机上尝试您的解决方案,但不起作用。。当我刷新时,我会得到相同的url。没有变化!有什么想法吗?上面的例子很短。仅支持“不可见”重定向用户。因此,当您打开which/derman.html时,您会得到与打开which/index.php?lang=de一样的结果,但在地址栏中您仍然会看到which/derman.html。然而,这并不是一个完整的解决方案,当然:)它应该可以工作,我在我的服务器上使用相同的代码,它可以工作。。。由于我注意到在您的链接中您使用了localhost,我建议您验证您的本地服务器是否支持此方法?我正在我的localhost上尝试您的解决方案,但我不起作用。。当我刷新时,我会得到相同的url。没有变化!有什么想法吗?上面的例子很短。仅支持“不可见”重定向用户。因此,当您打开which/derman.html时,您会得到与打开which/index.php?lang=de一样的结果,但在地址栏中您仍然会看到which/derman.html。然而,这并不是一个完整的解决方案,当然:)它应该可以工作,我在我的服务器上使用相同的代码,它可以工作。。。因为我注意到在您的链接中使用了localhost,所以我建议您验证您的本地服务器是否支持这种方法?