1

我的网站有很多指向其页面的链接。我将彻底更新网站、更新 CMS、内容和页面结构。域保持不变。

  1. 如果用户在 Internet 上的某个地方找到指向旧站点页面的旧链接并跟随该链接,而该链接已经是一个新站点并且链接指向的旧页面不存在,那么用户会如何访问浏览器?
  2. 如果旧页面未打开到域的根目录,如何从这些旧链接进行重定向或其他操作?
  3. 在这种情况下,Google 如何不丢失 PR 并将旧页面的 PR 权重重定向到主域?

我非常感谢有关此主题的任何相关讨论,因为它从各个方面都非常有趣。

4

1 回答 1

1

如果用户在 Internet 上的某个地方找到指向旧站点页面的旧链接并跟随该链接,而该链接已经是一个新站点并且链接指向的旧页面不存在,他们会在浏览器中获得什么?

他们将收到 404 Not Found。

如果旧页面未打开到域的根目录,如何从这些旧链接进行重定向或其他操作?

您需要创建从每个旧页面到等效新页面的 301 重定向。你可以使用 mod_alias 来做到这一点:

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

或 mod_rewrite:

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

您显然需要根据您的特定需求定制匹配的表达式和目标。如果您有很多需要重定向的单个 URL,您可能需要考虑创建一个RewriteMap

在这种情况下,Google 如何不丢失 PR 并将旧页面的 PR 权重重定向到主域?

只要您使用 301 重定向(永久重定向,而不是 302,临时重定向),Google 的网页排名就会转移到新网址。


在这种情况下使用 mod_alias 或 mod_rewrite 更好,为什么?

两者都可以,但是 mod_rewrite 为您提供了更多选项并允许重写地图。但是如果你做一些简单的事情,mod_alias 就可以了。

再次与 301 和 302 相同,在这里使用什么更好?

你想要301在这里。这意味着“您请求的资源已永久移动到 HERE ”,而不是 302,这意味着“您请求的资源现在不在这里,但与此同时,您可以在这里找到它”。此外,如果您只进行 302 重定向,Google 不会将任何页面排名转移到新页面,因为它仅用于临时重定向。当页面永久移动到新 URL 时不会。

最后我刚刚在他们都喜欢的旧页面上查看 domain.tld/index.php?id=77RewriteRule ^index.php?id=(*)$ / [L,R=301]在这种情况下,对于任何 id 号码,这条规则是否正确?

这条规则将不起作用。您无法匹配 a 中的查询字符串(?id= 部分)RewriteRule,仅匹配%{QUERY_STRING} var in aRewriteCond . Also(*)` 可能不是您想要的。

/index.php?id=N这会将N 为任意数字的任何请求 301 重定向到文档根目录。

RewriteCond %{QUERY_STRING} ^id=([0-9]+)
RewriteRule ^index.php$ / [L,R=301]
于 2012-08-17T08:02:57.563 回答