目前我正在进行一个项目,在其中我必须添加多语言功能到现有的网站。使用的链接结构(url:)类似于:“www.sitename.com/page alias/”,即使在多语言更新之后,该结构也必须保持不变。
不欢迎这样的url:
www.sitename.com/en/page-alias网站/
www.sitename.com/nl/different-alias网站/
我设法在www.htaccess和删除/en/&/nl/部分的重写中完成了这项工作。
.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所做的链接结构:
sitename.com/nl/page-alias网站名称/
sitename.com/en/different-alias网站名称/
“没有www”和“有语言”
我的问题:
CMS创建的链接结构是否具有:
对搜索引擎索引的负面影响?
重复内容?
还有其他缺点/负面影响吗?
或者.htaccess可以解决这个问题吗?
搜索引擎是否注意到这些不同的url都属于一个页面,并且仍然给予它正确的索引?
请记住,整个网站(来源)都有不正确的链接。
我希望你们能帮助我理解/解决这个问题。
最佳答案
从我看来,你打算做什么,你试图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来显示相同的内容,但使用不同的语言通常是一个坏主意。想象一下,当googlebot访问“www.sitename.com/page alias”时,您将显示给它的内容;您只能向googlebot呈现一种语言(比如说英语),而另一种语言将不会被索引。
从搜索引擎优化的角度来看,这两种语言通常都有自己的url
www.sitename.com/en/page-alias网站
www.sitename.com/nl/page-alias网站
随后,您必须使用hreflang元标记向google指示这些页面是相同的内容,但使用不同的语言-更多关于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变得简单了,您应该能够使用“page url”字段来指定漂亮的url来实现这一点,而不必依赖于“parent_alias/page_alias”框架。
它可以在“编辑内容”->“选项”选项卡->“页面URL”字段下找到。要使用漂亮的url,请遵循CMSMS Pretty URL文档。它确实涉及到cmsms使用预先准备好的htaccess。
关于.htaccess - 在搜索引擎上使用mod-rewrite重写内部链接有什么影响,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27357567/