2011-03-05 88 views
0

一个小问题,在过去的几个月里让我觉得很不舒服。首先是好消息:在massiv SO社区的帮助下,我能够将我的丑陋网址改写为好看的网址:例如website.com/page.ast?ln=nlwebsite.com/nl/page如何将旧的丑陋网址改写为新的美化工作网址?

谷歌显示在他们的搜索丑陋网址:

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"/> 

然而结果显然仍然是ge t在错误的,丑陋的网址下索引!
Q1。为什么谷歌忽略规范更美丽的链接?


也许它最好把这个做机械方式:重定向那些website.com/nl/webpage.ext?ln=yywebsite.com/nl/webpage基本不除去这没有做任何事情.XXX?ln=YYYY(其中XXX为2或3字符扩展,YYY是语言(的unnessecary部分可以nlbefrzh-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。如何重写所有丑陋的文件,以漂亮的网址,在一次? SOFAR,初步设计

RewriteRule /XX/ZZZZ(.*anything after and including the dot) /XX/ZZZZ [R=301] 

所以,你有什么建议?我看到可能的答案的建议。提前谢谢了!

回答

1
  1. 规范网址说,表示此内容的主要网址是不同的。它仍然是一个不同的谷歌网址,它会给一些规范的URL,但可能不会删除旧的URL,并防止重复的内容考虑。 它特别用于当你的网址添加了一些与内容相关的查询参数时。 http://something.com/1234/234?ref=g1http://something.com/1234/234?ref=widardnb是相同的网址,但谷歌会认为它是不同的网址,现在在这种情况下,你给规范网址http://something.com/1234/234。这你,因为你无法控制像联属会员可能会附加到您的网址。

  2. 如果你想实际上只向用户显示永久的美化网址。然后你必须做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) 

我没有测试过,但让我知道任何错误的情况下。

+0

很有意思。我几乎不能相信下面的4个单词重写引擎On可以解决我的问题:)你可以在每个Coer中写入'// comment style'后,每行都做些什么?然后我会测试它并在这里报告。非常感谢。 – Sam 2011-03-08 03:53:42

相关问题