我有一个网站,有许多链接到它的网页。我将完全更新网站,更新CMS,内容和页面结构。域保持不变。
如果用户在互联网上找到旧链接,他们会得到什么?
到旧站点页面并在它已经是新站点时跟踪该链接
链接指向的旧页不存在?
如何从这些旧链接(如果旧链接)进行重定向或其他操作
页面未打开到域的根目录?
在这种情况下,谷歌怎么能不失去公关和
将旧页面的PR权重重定向到主域?
我很感激关于这个话题的任何相关讨论,因为它从各个方面都很有趣。

最佳答案

如果用户在Internet上找到指向旧站点页面的旧链接,并在该链接已经是一个新站点和一个链接指向的旧页面不存在的情况下跟踪该链接,浏览器中的用户会得到什么?
他们会得到一个404没有找到。
如果旧页面没有打开到域的根目录,如何从这些旧链接进行重定向或其他操作?
您需要创建一个301重定向,从每个旧页面重定向到相应的新页面。您可以使用mod_alias:

RedirectMatch 301 ^/old_page/(.*)$ /new_page/$1

或修改:
RewriteRule ^old_page/(.*)$ /new_page/$1 [L,R=301]

显然,您需要根据您的特定需要定制匹配的表达式和目标。如果您有很多需要重定向的单独url,那么您可能希望创建一个RewriteMap
在这种情况下,谷歌怎么不失去公关,并重定向到主域的旧网页公关重量?
只要你使用301重定向(永久重定向,而不是302,临时重定向),谷歌的页面排名就会转移到新的网址。
在这种情况下,使用mod_alias或mod_rewrite更好,为什么?
两者都可以,但是mod_rewrite提供了更多的选项,并允许重写映射。但是如果你做的是简单的事情,mod_alias就可以了。
同样的301和302还有什么更好用的?
你要301在这里。它的意思是“你请求的资源已经永久地移动到这里”,而302的意思是“你请求的资源现在不在这里,但同时,你可以在这里找到它”。另外,如果你只做302重定向,谷歌也不会将任何页面排名转移到新页面,因为它只用于临时重定向。当一个页面永久地移动到一个新的url时不会。
最后一次我看到的是他们都喜欢的旧页面domain.tld/index.php?id=77在这种情况下,对于任何要根的id号,此规则是否更正RewriteRule ^index.php?id=(*)$ / [L,R=301]
这条规则行不通。不能与查询字符串(the?id=part)在aRewriteRule中,只有在rewritecond%{QUERY_STRING} var in a(*)'的情况下才可能不是您想要的。
这将301将. Also的任何请求(其中n是任意数字)重定向到文档根目录。
RewriteCond %{QUERY_STRING} ^id=([0-9]+)
RewriteRule ^index.php$ / [L,R=301]

关于.htaccess - 旧页PR到,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12001865/

10-13 00:29