gpt4 book ai didi

ruby-on-rails - 不同的 robots.txt 用于 Heroku 上的登台服务器

转载 作者:行者123 更新时间:2023-12-04 06:22:52 25 4
gpt4 key购买 nike

我在 Heroku 上有临时和生产应用程序。

对于爬虫,我设置了 robots.txt 文件。

之后,我收到了来自谷歌的消息。

Dear Webmaster, The host name of your site, https://www.myapp.com/, does not match any of the "Subject Names" in your SSL certificate, which were:
*.herokuapp.com
herokuapp.com



Google 机器人读取我的临时应用程序上的 robots.txt 并发送此消息。因为我没有设置任何内容来防止爬虫读取文件。

所以,我在想的是在登台和生产之间更改 .gitignore 文件,但我不知道如何做到这一点。

实现这一点的最佳做法是什么?

编辑

我在谷歌上搜索了这个并找到了这篇文章 http://goo.gl/2ZHal

这篇文章说设置基本的 Rack 身份验证,你不需要关心 robots.txt。

我不知道基本身份验证可以阻止 google bot。
似乎这个解决方案更好地操作 .gitignore 文件。

最佳答案

Rails 3 的一个很好的解决方案是使用 Rack。这是一篇概述该过程的精彩帖子:Serving Different Robots.txt Using Rack .总而言之,您将其添加到您的 routes.rb 中:

 # config/routes.rb
require 'robots_generator' # Rails 3 does not autoload files in lib
match "/robots.txt" => RobotsGenerator

然后在 lib/robots_generator.rb 中创建一个新文件
# lib/robots_generator.rb
class RobotsGenerator
# Use the config/robots.txt in production.
# Disallow everything for all other environments.
# http://avandamiri.com/2011/10/11/serving-different-robots-using-rack.html
def self.call(env)
body = if Rails.env.production?
File.read Rails.root.join('config', 'robots.txt')
else
"User-agent: *\nDisallow: /"
end

# Heroku can cache content for free using Varnish.
headers = { 'Cache-Control' => "public, max-age=#{1.month.seconds.to_i}" }

[200, headers, [body]]
rescue Errno::ENOENT
[404, {}, ['# A robots.txt is not configured']]
end
end

最后确保将 move robots.txt 包含到您的配置文件夹中(或您在 RobotsGenerator 类中指定的任何位置)。

关于ruby-on-rails - 不同的 robots.txt 用于 Heroku 上的登台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11813534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com