语言中立的输入页面

时间:2009-02-27 13:55:32

标签: php url localization

我的旧网站有一个index.html页面......没什么奇怪的!一切都很好。

新网站有英文版和法文版,因此新索引为index.php?lang=eng…。这是有道理的。

我不喜欢制作一个会说“英语”或“法语”的头版。但这对排名或seo来说并不好。

所以问题是:如何通过请求(index.php)设置默认?lang=eng成为头版?

7 个答案:

答案 0 :(得分:3)

  • domain.com/en/index.php
  • domain.com/fr/index.php

使用正则表达式(mod_rewrite,ISAPI等)重写url来处理对相关页面的请求,这样

  • domain.com/en/index.php REWRITE TO domain.com/index.php?lang=en
  • domain.com/fr/index.php REWRITE TO domain.com/index.php?lang=fr

这样,您的网页就是搜索引擎的两个单独页面,但是通过代码中的一个网关处理。我不是一个正则表达式专家,但它会是一个非常简单的正则表达式我想象

答案 1 :(得分:3)

我不确定我理解这个问题。它似乎有两个部分:

如何提供英语的默认语言:

$lang = empty($_GET['lang']) ? "eng" : $_GET['lang'];

您是否还有将英语/法语链接放在何处的问题,以便搜索引擎不对您这么做?我不知道这个问题。

如果你正在使用CMS,也可以告诉我们,如果是的话,也可以告诉我们。

(Repondez a moi en Francais si vous voulais。Je lis en francais bein meilleur que j'en ecris)。

答案 2 :(得分:2)

除非我误解了这个问题,否则在index.php中检查语言时,请输入以下内容:

$lang = @$_GET['lang'];
if ( empty($lang) ) $lang = 'eng';

答案 3 :(得分:1)

只需在php代码中输入一个参数:


if (lang == "")  // haven't done php in a while so the syntax is probably wrong
{
  lang = "eng";
}
换句话说,如果lang变量没有参数,你可以自动将它设置为eng,因此除非另有说明,否则每次都会将第一页默认为英语。

答案 4 :(得分:0)

只需制作默认的英语并在索引页面上提供一个选项以更改为法语?当然,这取决于大多数访问者所说的语言,访问者日志并不难以理解。

答案 5 :(得分:0)

我会使用中性网址进行输入,例如:

http://example.com/foo/bar

在这个页面上,我会做一些language negotiation或者只是询问用户首选语言。然后我可以重定向到特定语言的网址:

http://example.com/en/foo/bar

答案 6 :(得分:0)

您如何看待该解决方案

<?php
    $lang = $_GET['lang'];
    if ( empty($lang) ) $lang = 'fra';
    header( 'Location: http://acecrodeo.com/new/01-acec.php?lang='.$lang) ;
?>