这个问题在过去的几个月里一直在困扰着我。首先是好消息:在一个大众社区的帮助下,我能够将我丑陋的网址重写为好的网址:例如: website.com/page.ast?ln=nl
进入website.com/nl/page
Google在搜索中显示丑陋的网址:
website.com/nl/page.ast?ln=fa
我的网站页面代码确实具有规范设置:
<link rel="canonical" href="http://website.com/nl/page">
<meta name="original-source" content="http://website.com/nl/page"/>
然而,结果显然仍然被错误的,丑陋的网址索引!
的 Q1。为什么谷歌会忽略规范更美丽的链接?
也许最好以机械方式执行此操作:将website.com/nl/webpage.ext?ln=yy
重定向到website.com/nl/webpage
,基本上删除不执行任何操作的不可靠部分.XXX?ln=YYYY
(其中XXX是2或3个字符)扩展名和YYY是一种语言(可以是nl
,be
,fr
,还有zh-CN
等等。
EXAMPLE OF UGLY OLD FILES THEIR NICE BEAUTIFIED URLS
/en/somepage.ast?ln=fr /en/somepage
/fr/home.php?ln=zh-CN /fr/home
/xx/zzzzzz.ext?ln=yyyy /xx/zzzzzzz
/xx/zzzzzz?ln=yyyy /xx/zzzzzzz
/xx/zzzzzz.ext /xx/zzzzzzz
Q2。如何一次性将所有难看的文件重写为好的URL? Sofar,初步设计
RewriteRule /XX/ZZZZ(.*anything after and including the dot) /XX/ZZZZ [R=301]
那么,你推荐什么?我认为建议是可能的答案。非常感谢提前!
答案 0 :(得分:1)
Canonical url说,代表此内容的主网址不同。它对谷歌来说仍然是一个不同的URL,它会对规范网址给予一些权重,但可能不会删除旧网址并阻止您重复内容注意事项。
它特别用于你有urls添加一些与内容相关的查询参数。
http://something.com/1234/234?ref=g1
和http://something.com/1234/234?ref=widardnb
对您来说是相同的网址,但谷歌会将其视为不同的网址,现在在这种情况下,您会提供规范网址http://something.com/1234/234
。这是你,因为你无法控制联盟会员等人可能会附加到你的网址。
如果您想要永久地向用户显示美化网址。然后你必须做301重定向。
为此,请在apache配置文件中使用mod_rewrite。
LoadModule rewrite_module /path/to/modules/dir/mod_rewrite.so
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ~ !^$ [OR] #Query string is not empty
RewriteCond %{REQUEST_URI} ~ ^(.*)\.(.*)$ #Your url path have . in between
RewriteRule .* %1 [R=301,L] #then redirect to path without extension (else all are handled as it is).
同时启用重写日志
RewriteLog "/path/to/log/directory/rewrite.log" #change the directory name
RewriteLogLevel 9 #this will help you understanding whats happening behind (disable this once everything starts working)
我没有测试过,但如果有任何错误,请告诉我。