目前我正在开展一个项目,我必须在现有网站上添加多语言功能。使用的链接结构(URL :)类似于:“www.sitename.com/page-alias/”,即使在多语言更新后也必须保持不变。
这样的网址不受欢迎:
我设法通过www。上的.htaccess重写来完成工作。 (有一个活动的重写改变没有www。到www。)和重写删除/ en /& / nl / part。
我的.htaccess文件中执行这些更改的部分:
#from without www. to www.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sitename\.com$
RewriteRule ^(.*)$ http://www.sitename.com/$1 [R=301,L]
#remove language from URL
RewriteRule ^en/(.*)$ /$1 [R=NC,L]
RewriteRule ^nl/(.*)$ /$1 [R=NC,L]
但是,我们使用的CMS(CMS变得简单)创建了一个类似于下面列表中显示的URL的链接结构。不幸的是,它们似乎不是改变CMS所做链接结构的简单方法:
“没有www。”和“用语言”
我的问题:
CMS创建的链接结构是否具有:
或.htaccess是否解决了这个问题?
请记住,整个网站(来源)都有不正确的链接。
我希望你们能帮助我理解/解决这个问题。
答案 0 :(得分:0)
从我看到你打算做什么,你试图302重定向(你的意思是[R,NC,L]?):
www.sitename.com/en/page-alias - > www.sitename.com/page-alias
www.sitename.com/nl/page-alias - > www.sitename.com/page-alias
然而,从SEO的角度来看,使用相同的URL来显示相同的内容但是使用不同的语言通常是一个坏主意。想象一下,当您访问“www.sitename.com/page-alias”时,您将向GoogleBot显示的内容;您只能向GoogleBot提供一种语言(比如说英语),而另一种语言则不会被编入索引。
从SEO的角度来看,通常首选的是2种语言都有自己的URL,如
www.sitename.com/en/page-alias
www.sitename.com/nl/page-alias
随后,您必须使用 hreflang 元标记来指示谷歌这些页面是相同的内容,但使用不同的语言 - 更多关于Google Webmaster Tools
<link rel="alternate" href="http://www.sitename.com/nl/page-alias" hreflang="nl" />
<link rel="alternate" href="http://www.sitename.com/en/page-alias" hreflang="en" />
<link rel="alternate" href="http://www.sitename.com/en/page-alias" hreflang="x-default" />
我已经看了CMS Made Simple,你应该能够使用“页面URL”字段来指定完美的URL,而不必依赖“parent_alias / page_alias”框架。
可以在“编辑内容”下找到 - &gt; “选项”标签 - &gt; “页面网址”字段。要使用漂亮的网址,请按照CMSMS Pretty URL文档进行操作。它确实涉及使用CMSMS预先准备好的.htaccess。
答案 1 :(得分:0)
您不需要使用.htaccess。
当前版本的CMS Made Simple有一个&#34; Page URL&#34;内容和主要模块的字段。使用此字段,您可以定义链接(以及Google规范)的确切网址,这样您就可以在没有/ en或/ nl的情况下使用它。
对于内容,可以在&#34;编辑内容&#34;下找到URL字段。 - &GT; &#34;选项&#34;标签 - &gt; &#34;页面网址&#34;字段。