Codeigniter 带有语言参数的i18n URL格式始终位于URL中

Codeigniter 带有语言参数的i18n URL格式始终位于URL中,codeigniter,url-rewriting,internationalization,seo,Codeigniter,Url Rewriting,Internationalization,Seo,我正在一个新网站上工作,我有一个关于内部化(i18n)和搜索引擎优化的问题 情况是这样的。我正在使用这个CodeIgniter将我的网站翻译成两种语言。 假设这些语言是英语和荷兰语 使用此代码时,访问mydomain.com的用户将被重定向到mydomain.com/en/defaultcontrollername 其中英语是默认语言 我将有一个简单的选择框,用户可以切换到荷兰语。url将保持不变,只是“en”替换为“nl” 现在我的问题是:在搜索引擎优化方面,默认语言总是出现在URL中,这是一

我正在一个新网站上工作,我有一个关于内部化(i18n)和搜索引擎优化的问题

情况是这样的。我正在使用这个CodeIgniter将我的网站翻译成两种语言。 假设这些语言是英语和荷兰语

使用此代码时,访问mydomain.com的用户将被重定向到mydomain.com/en/defaultcontrollername 其中英语是默认语言

我将有一个简单的选择框,用户可以切换到荷兰语。url将保持不变,只是“en”替换为“nl”

现在我的问题是:在搜索引擎优化方面,默认语言总是出现在URL中,这是一种不好的做法吗?此外,打开mydomain.com后立即重定向到mydomain.com/en/defaultcontrollername对SEO有影响吗

最好始终使用默认语言并首先显示该语言,还是根据浏览器标题“猜测”该语言

最后但并非最不重要的一点:我还必须翻译我的控制器名称。

请参阅:

使用该语言创建文件夹(或子域,或顶级域)是优化SEO的首选设置

您可以翻译URL本身中的单词(您案例中的控制器名称)

  • 它使URL看起来更吸引非英语用户
  • 任何非ASCII字符都必须进行URL编码(UTF-8)
  • URL可以很长,甚至只有几个国际字符
  • 浏览器通常会显示未在URL栏中编码的URL,但会对其进行复制和粘贴编码

那么你到底想要什么?…我的意思是你总是需要“en”和“nl”在你的Url中说语言标识符,还是不需要?这个特定的CodeIgniter总是在Url中提供语言参数。我不确定这是否是最好的方法。好的…这根本不需要提供languageparameter,即使是一次性的…我最近制作了一个网站,支持四种语言,url中没有语言…你能做的是将默认语言存储在cookie中,并映射语言文件,然后从der加载内容…如果用户更改语言,然后用新语言替换cookie中的值,并将其映射到与cookie中的值相同的语言文件路径…因此您不需要更改URL我知道您可以使用cookie和会话。但是对于SEO来说,这似乎真的很糟糕。所以在URL中始终使用这种语言是可以的,即使是默认语言?谢谢,即使是默认语言也可以。维基百科就是这样做的。