robots.txt 并禁止绝对路径 URL

Igo*_*Vuk 1 seo robots.txt heroku noindex

我正在使用 Heroku 管道。因此,当我推送应用程序时,它会被推送到暂存应用程序

https://appname.herokuapp.com/
Run Code Online (Sandbox Code Playgroud)

如果一切正确,我就会将该应用程序推广到生产环境。没有新的构建过程。这是第一次构建用于登台的同一个应用程序。

https://appname.com/
Run Code Online (Sandbox Code Playgroud)

问题是这会导致重复内容的问题。站点是彼此的克隆。一模一样。我想从 Google 索引和搜索引擎中排除暂存应用程序。

我想到的一种方法是使用robots.txt文件。

为了这个工作我应该这样写

User-agent: *
Disallow: https://appname.herokuapp.com/
Run Code Online (Sandbox Code Playgroud)

使用绝对路径,因为该文件将位于暂存和生产应用程序的服务器上,我只想从 Google 索引中删除暂存应用程序,而不是触及生产应用程序。

这是正确的做法吗?

uno*_*nor 6

不可以,该Disallow字段不能\xe2\x80\x99 获取完整的 URL 引用。您的 robots.txt 会阻止如下 URL:

\n\n
    \n
  • https://example.com/https://appname.herokuapp.com/
  • \n
  • https://example.com/https://appname.herokuapp.com/foo
  • \n
\n\n

Disallow值始终表示URL\xe2\x80\x99s 路径的开头

\n\n

要阻止 下的所有 URL https://appname.herokuapp.com/,您需要:

\n\n
Disallow: /\n
Run Code Online (Sandbox Code Playgroud)\n\n

https://appname.herokuapp.com/所以你必须使用不同的 robots.txt 文件https://appname.com/使用不同的 robots.txt 文件。

\n\n

如果您不介意机器人爬行https://appname.herokuapp.com/,您可以使用noindex。但这也需要两个站点有不同的行为。不需要不同行为的另一种选择是使用canonical. 这会向爬虫传达哪个 URL 是首选索引。

\n\n
Disallow: /\n
Run Code Online (Sandbox Code Playgroud)\n\n
<!-- on https://appname.herokuapp.com/foobar -->\n<link rel="canonical" href="https://appname.com/foobar" />\n
Run Code Online (Sandbox Code Playgroud)\n