Heroku 上的临时服务器的不同 robots.txt

2023-11-21

我在 Heroku 上有暂存和生产应用程序。

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

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

尊敬的网站管理员, 您网站的主机名,https://www.myapp.com/, 与您的 SSL 证书中的任何“主题名称”都不匹配,这些“主题名称”是:
*.herokuapp.com
herokuapp.com

Google 机器人读取我的暂存应用程序上的 robots.txt 并发送此消息。因为我没有设置任何阻止爬虫读取文件的东西。

所以,我正在考虑的是在暂存和生产之间更改 .gitignore 文件,但我不知道如何做到这一点。

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

EDIT

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

本文说的是设置基本的 Rack 身份验证,您不需要关心 robots.txt。

我不知道基本身份验证可以阻止谷歌机器人。 看来这个解决方案比操作 .gitignore 文件更好。


Rails 3 的一个很好的解决方案是使用 Rack。这是一篇很棒的文章,概述了该过程:使用 Rack 为不同的 Robots.txt 提供服务。总而言之,您将其添加到您的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 class).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Heroku 上的临时服务器的不同 robots.txt 的相关文章

  • 在私有控制器方法中返回redirect_to

    前言 我正在使用设备进行身份验证 我试图阻止未经授权的用户查看 编辑或更新其他用户的信息 我最关心的是用户将 DOM 中的表单修改为另一个用户的 ID 填写表单 然后单击更新 我已经专门阅读过 像下面这样的东西应该有效 但事实并非如此 SO
  • 为什么“捆绑”会在我的开发机器上安装生产 gem?

    Gemfile 说 gem sqlite3 groups gt development test gem mysql2 group gt production 然而当我打字时bundle install在我的开发机器上安装了所有 gem 我
  • 创建一个简单的 Rails 3 文本助手 Gem [重复]

    这个问题在这里已经有答案了 我一直在开发我的第一个 Rails 3 插件 以打包一个我喜欢在ApplicationHelper我所有的应用程序 你可以看到整个代码在 Github 上 https github com burlesona s
  • 资产管道弃用警告 tsort.rb:226

    我的 Rails 4 2 在开发中运行良好 但在生产环境中我收到以下警告 DEPRECATION WARNING The configuration option config serve static assets has been re
  • Capistrano 和 XSendFile 配置

    我正在尝试使用 Apache 2 2 Passenger 4 0 59 和 XSendFile 0 12 配置 Rails 生产服务器 应用程序通过 Capistrano 部署 部署的应用程序生成 可能很大 PDF Rails root t
  • Rails 3 + angularjs + 缩小在生产中不起作用:未知提供者:eProvider

    我已遵循我能找到的所有修复缩小的说明 例如 var MyController function renamed scope renamedGreeter MyController inject scope greeter and someM
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个
  • 如何从 Rails 中的 date_select 或 select_date 获取日期?

    Using select date给我回一个params my date with year month and day属性 如何轻松获取 Date 对象 我希望有类似的事情params my date to date 我很高兴使用date
  • Rails、REST 架构和 HTML 5:带有预检请求的跨域请求

    在致力于使我们的网站 HTML 5 友好的项目时 我们渴望采用跨域请求的新方法 不再通过隐藏的 iframe 发布 使用访问控制 http www w3 org TR access control 根据规范 我们开始设置一些测试来验证各种浏
  • 如何使用 Rspec 测试具有嵌套路由的控制器?

    我有 2 个使用轨道脚手架生成器创建的控制器 我希望它们嵌套在一个名为 demo 的文件夹中 所以运行 rails g scaffold demo flows rails g scaffold demo nodes 然后我决定将节点嵌套在流
  • (Rails) Assert_Select 的烦人警告

    有谁知道如何让assert select在rake测试期间不输出所有那些讨厌的html警告 你知道 就像这样的东西 ignoring attempt to close body with div opened at byte 1036 li
  • 使用 Ruby aws-sdk 跟踪文件到 S3 的上传进度

    首先 我知道SO中有很多与此类似的问题 在过去的一周里 我读了大部分 如果不是全部 但我仍然无法让这项工作为我工作 我正在开发一个 Ruby on Rails 应用程序 允许用户将 mp3 文件上传到 Amazon S3 上传本身工作正常
  • rvm gem 安装错误?

    我正在摆弄 ruby gems 和 rvm 它工作得很好 但现在当我尝试安装 gem 时出现错误 gem install Rails错误 同时 执行 gem Errno EACCES 权限被拒绝 Users da rvm gems ruby
  • 如何加载页面特定的rails 4 js文件?

    我正在阅读资产管道的 Rails 指南文档 它指出 CoffeeScript 页面特定生成的文件 如果清单上有 require tree 指令 则默认情况下可供用户使用 这对我不起作用我必须包括这个 在特定控制器上 我缺少什么 资产管道会将
  • 资产管道:仅对一个控制器使用 javascript 文件

    在 Ruby on Rails v4 中 我希望仅为特定控制器加载一个 js 文件 或一组 js 文件 执行此操作的标准方法是什么 在 application js 中有 require tree 线 我假设这需要删除 所以我并不总是加载每
  • 我想要一个默认选择空白值的日期选择框

    我用了以下date select助手 但没有一个显示默认情况下选择空白值的日期选择框 通过以下所有代码 我得到了选择框 但选择了当前日期 我在 Rails 2 3 2 上
  • Heroku 上的 Django 翻译无法完全正常工作

    我在 Heroku 上部署了 Django 应用程序 并添加了https github com piotras heroku buildpack gettext git此 ugettext 构建包和应用程序的某些部分已注释翻译 本地可以用
  • Rails 资源单数还是复数?

    我有一条搜索路线 我想将其设为单数 但是当我指定单数路线时 它仍然会生成复数控制器路线 这是应该的样子吗 resource search Gives me search POST search format action gt create
  • 如何在 Capybara 中 POST 到 URL?

    刚刚从 Cucumber Webrat 切换到 Cucumber Capybara 我想知道如何将内容 POST 到 Capybara 中的 URL 在 Cucumber Webrat 中我能够执行以下步骤 When I send to d
  • 在 Sinatra 中运行后台进程

    我有 Sinatra Rails 应用程序和一个启动一些漫长过程的操作 通常我会为后台作业排队 但这种情况太简单了 后台进程很少启动 所以队列是一个开销 那么如何在没有队列的情况下运行后台进程呢 get build logs project

随机推荐

  • C++:参数传递“通过引用传递”

    我理解与任何其他变量一样 参数的类型决定了参数与其参数之间的交互 我的问题是 为什么您会引用参数 而为什么不引用参数背后的原因是什么 为什么有些函数参数可以引用 有些则不能 无法理解这样做的好处 有人可以解释一下吗 通过引用传递的能力存在有
  • Windows 桌面应用程序的使用情况跟踪[关闭]

    Closed 这个问题是无关 目前不接受答案 我正在寻找一些可用于收集 Windows 桌面应用程序的使用信息并对其进行分析的框架 例如 我希望能够回答以下问题 a 人们一天内使用此应用程序多少次 b 他们最喜欢的菜单项等 我简单地浏览了
  • 如何在终端中更改我的 Git 用户名?

    我在终端中从 git 进行推送和拉取 然后在 github com 上更改了我的用户名 我去推送一些更改 但它无法推送 因为它仍然识别我的旧用户名 如何在终端中的 git 上更改 更新我的用户名 在您的终端中 导航到您想要进行更改的存储库
  • 跟踪 YouTube 观看历史记录

    为了自动跟踪我的时间 我想获取我的观看历史记录 最好的情况 每天一次 最坏的情况是每分钟一次 并将其添加为 Google 日历事件 虽然我成功添加了 Google 日历活动 但无法获取 YouTube 观看历史记录 所以我想知道 v3 AP
  • 捕获动态添加到 Jquery Datatables 表的输入字段上的更改事件

    我有一个 ajax 调用 它使用以下代码为响应中的每条记录添加一些行到数据表中 strAppName data Application Name maintCost
  • Eclipse:这些 JSP 错误是什么?

    我继承了一个 Web 应用程序 当在 Eclipse 中设置它时 它显示特定 JSP 中的错误 这些错误在 Problems 视图中没有与之相关的描述 单击它们会将我带到 JSP 的顶部 其中红色错误下划线出现在字符串的中间 如下所示 想象
  • jQuery动态改变元素高度

    我正在开发一个流体布局项目 我的文档中有一些固定高度的 DIV 并且它们的高度都不同 我需要在浏览器调整大小时按比例更改这些 DIV 高度 这是标记 div class target div div class target div div
  • 两个角度之间的最小差?

    我正在尝试计算两个角度之间的最小差异 这是我当前的代码 与我在网上找到的代码略有不同 float a1 MathHelper ToDegrees Rot float a2 MathHelper ToDegrees m fTargetRot
  • 为什么这里循环优于索引?

    几年前 有人posted on 活跃状态食谱出于比较目的 三个 python NumPy 函数 每个都接受相同的参数并返回相同的结果 a距离矩阵 其中两个摘自公开来源 它们都是 或者在我看来是 惯用的 numpy 代码 创建距离矩阵所需的重
  • 数组赋值的性能

    代码优化在 SO 中提到 分析是优化 javascript 的第一步 建议的引擎是 Chrome 和 Firefox 的分析器 这些的问题在于它们以某种奇怪的方式告诉每个函数执行的时间 但我对它们没有很好的理解 最有用的方法是探查器会告诉您
  • 如何让 fgcolor 属性在最新的 Android 版本上工作?

    我曾经能够做到这一点
  • 用PHP执行mysql“创建函数”语句

    我想运行以下命令mysql从 PHP 创建函数语句 DELIMITER CREATE FUNCTION myFunc instring varchar 4000 RETURNS int 11 NO SQL DETERMINISTIC SQL
  • 这里发生了什么?我将结果分配给 C++ 中的结果[重复]

    这个问题在这里已经有答案了 你能告诉我这是怎么回事吗 为什么这是可能的 std make unique
  • 错误 SIPEPS,版本=5.0.0.0 UCMA 4.0 VS2010/VS2013

    我在 VS 2013 和 VS 2010 上开发了 UCMA 4 0 应用程序 运行项目时 出现以下错误 无法加载文件或程序集 SIPEPS Version 5 0 0 0 Culture neutral PublicKeyToken 31
  • 将小部件放置在 QScrollArea 的中心

    如何将固定大小的自定义小部件放置在 QScrollArea 的中心 我可以使用 myWidget pos x y 手动将小部件放置在 QScrollArea 内 但 QScrollArea 中没有 sizeChanged 信号 因此如果滚动
  • 使用 WebKit.NET 从 JavaScript 调用 C# 函数

    我一直在 c win forms 项目中使用 webkit net 并且喜欢使用以下命令从 C 程序中调用 JavaScript 函数是多么容易 browser Document InvokeScriptMethod functionNam
  • 如何通过删除不必要的字段来扩展评论框架(django)?

    我一直在阅读有关评论框架以及如何自定义它的 django 文档 http docs djangoproject com en 1 1 ref contrib comments custom 在该页面中 它显示了如何add表单中的新字段 但我
  • 使用 Python Spark Redshift

    我正在尝试将 Spark 与 amazon Redshift 连接 但收到此错误 我的代码如下 from pyspark sql import SQLContext from pyspark import SparkContext sc S
  • 在共享库中混合 PIC 和非 PIC 对象

    这个问题与this one以及它的答案 我刚刚发现我正在开发的构建中有一些丑陋之处 情况有点像下面这样 以 gmake 格式编写 请注意 这特别适用于 sparc 和 x86 硬件上的 32 位内存模型 OBJ SET1 some obje
  • Heroku 上的临时服务器的不同 robots.txt

    我在 Heroku 上有暂存和生产应用程序 对于爬虫 我设置了robots txt文件 之后我收到了谷歌的消息 尊敬的网站管理员 您网站的主机名 https www myapp com 与您的 SSL 证书中的任何 主题名称 都不匹配 这些