Php 与语言无关的入口页面

Php 与语言无关的入口页面,php,url,localization,Php,Url,Localization,我的旧网站有一个index.html页面…没什么奇怪的!一切都很好 新网站有英文版和法文版,因此新索引是index.php?lang=eng.。这是有道理的 我不喜欢在头版写上“英语”或“法语”。但这对排名或搜索引擎优化都不好 所以问题是:我如何获得一个带有请求(?lang=eng)的默认index.php,使其成为头版?只要在php代码中添加一个参数就可以了: if (lang == "") // haven't done php in a while so the syntax is p

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

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

我不喜欢在头版写上“英语”或“法语”。但这对排名或搜索引擎优化都不好


所以问题是:我如何获得一个带有请求(
?lang=eng
)的默认
index.php
,使其成为头版?

只要在php代码中添加一个参数就可以了:

if (lang == "")  // haven't done php in a while so the syntax is probably wrong
{
  lang = "eng";
}

if(lang==“”)//有一段时间没有使用php,因此语法可能是错误的
{
lang=“eng”;
}

换句话说,如果lang变量上没有参数,您可以自动将其设置为eng,因此除非另有说明,否则每次第一页都将默认为英语。

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

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

$lang = @$_GET['lang'];
if ( empty($lang) ) $lang = 'eng';
  • domain.com/en/index.php
  • domain.com/fr/index.php
使用url重写和正则表达式(mod_rewrite、ISAPI等)来处理对相关页面的请求

  • domain.com/en/index.php重写为domain.com/index.php?lang=en
  • domain.com/fr/index.php重写为domain.com/index.php?lang=fr

这样,您的页面对于搜索引擎来说是两个独立的页面,但通过代码中的一个网关进行处理。我不是正则表达式专家,但我想这是一个非常简单的正则表达式,我不确定我是否理解这个问题。它似乎有两个部分:

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

$lang=
空($_GET['lang'])?“英文”:
$_获得['lang']

你是否也有问题把英文/法文链接放在哪里,这样搜索引擎就不会打扰你了?我没有意识到这个问题

如果您使用的是CMS,那么告诉我们您使用的是哪种CMS也可能会有所帮助


(回复一个法语中的moi is vous voulais.Je lis en Francais bein meilleur que j'en ecris)。

我会使用一个中性URL进行输入,例如:

http://example.com/foo/bar
在这个页面上,我会做一些事情,或者简单地向用户询问他们喜欢的语言。然后我可以重定向到特定于语言的URL:

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

你觉得这个解决方案怎么样

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


代码应大于$lang=fetchLangFromQueryString();如果($lang==”)$lang=“eng”;,我自己也不太记得正确的语法…Top guy的语法是正确的。就像我说的,已经有一段时间了,我们被禁止在Uni使用php。如果未设置$\u get['lang'],将导致错误。交换分配就可以了。我的服务器上肯定有一些有趣的东西,因为我从来没有因为访问无效的GET参数(返回一个空值)而出错。尽管如此,我还是会添加一个“以防万一”通常我会说“是邪恶的,但在这种情况下,这正是我们想要的:)只要我没有收到任何错误,也无法在网上搜索“@$\u get”获得任何信息。。我不会添加它…仅供参考-将“@”放在语句之前只是意味着“忽略由此产生的任何错误”,这很好,但如果未设置$_GET['lang'],它将抛出通知或警告。最好仅当$\u GET['lang']不为空时,才从$\u GET分配$lang。