草庐IT

apache - 禁止抓取 CDN 站点

coder 2024-02-28 原文

所以我有一个网站http://www.example.com .

JS/CSS/图像由 CDN 提供 - http://xxxx.cloudfront.net或者 http://cdn.example.com ;它们都是一样的东西。现在 CDN 只提供任何类型的文件,包括我的 PHP 页面。谷歌也以某种方式抓取了该 CDN 站点;实际上是两个站点 - 来自 cdn.example.com 和 http://xxxx.cloudfront.net .考虑

  1. 我没有尝试设置子域或镜像站点。如果发生这种情况,那是我尝试设置 CDN 的副作用。
  2. CDN 是某种网络服务器,不一定是 Apache。我不知道那是什么类型的服务器。
  3. CDN 上没有请求处理。它只是从原始服务器获取东西。我认为,您不能将自定义文件放在 CDN 上;它只是从原始服务器获取东西。您需要放在 CDN 上的任何内容都来自源服务器。

  4. 如何防止抓取 PHP 页面?

  5. 我应该允许从 cdn.example.com 还是从 example.com 抓取图像? HTML 里面的图片链接都是 cdn.example.com。如果我只允许从 example.com 抓取图像,那么实际上没有什么可抓取的——没有指向此类图像的链接。如果我允许从 cdn.example.com 抓取图片,那么它不会泄露 SEO 的好处吗?

我根据 stackoverflow 的回答考虑了一些替代方案:

  1. 编写自定义 robot_cdn.txt 并根据 HTTP_HOST 提供该自定义 robots_cdn.txt。这是根据堆栈溢出的许多答案。
  2. 从子域提供新的 robots.txt。正如我上面所解释的,我不认为 CDN 可以被视为子域。
  3. 当 HTTP_HOST 为 cdn.example.com 时做 301 重定向到 www.example.com

建议?

与此相关的问题,例如How Disallow a mirror site (on sub-domain) using robots.txt?

最佳答案

您可以将 robots.txt 放在您的根目录中,这样它将与 cdn.-yourdomain-.com/robots.txt 一起提供。在此 robots.txt 中,您可以使用以下设置禁止所有爬虫

User-agent: *
Disallow: /

关于apache - 禁止抓取 CDN 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16953291/

有关apache - 禁止抓取 CDN 站点的更多相关文章

  1. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  2. ruby - 我需要从 facebook 游戏中抓取数据——使用 ruby - 2

    修改(澄清问题)我已经花了几天时间试图弄清楚如何从Facebook游戏中抓取特定信息;但是,我遇到了一堵又一堵砖墙。据我所知,主要问题如下。我可以使用Chrome的检查元素工具手动查找我需要的html-它似乎位于iframe中。但是,当我尝试抓取该iframe时,它​​是空的(属性除外):如果我使用浏览器的“查看页面源代码”工具,这与我看到的输出相同。我不明白为什么我看不到iframe中的数据。答案不是它是由AJAX之后添加的。(我知道这既是因为“查看页面源代码”可以读取Ajax添加的数据,也是因为我有b/c我一直等到我可以看到数据页面之后才抓取它,但它仍然不存在)。发生这种情况是因为

  3. RUBY - 网页抓取 - (OpenURI::HTTPError) - 2

    我正在尝试用ruby​​编写一个简单的网络抓取代码。它一直工作到第29个url,然后我收到此错误消息:C:/Ruby193/lib/ruby/1.9.1/open-uri.rb:346:in`open_http':500InternalServerError(OpenURI::HTTPError)fromC:/Ruby193/lib/ruby/1.9.1/open-uri.rb:775:in`buffer_open'fromC:/Ruby193/lib/ruby/1.9.1/open-uri.rb:203:in`blockinopen_loop'fromC:/Ruby193/lib/r

  4. ruby - 如何禁止在 RSpec 中显示挂起(跳过)的规范? - 2

    我有几个跳过的规范。Pending:(Failureslistedhereareexpectedanddonotaffectyoursuite'sstatus)1)...#Notyetimplemented#./spec/requests/request_spec.rb:22如何抑制未决规范的输出? 最佳答案 您可以添加以下配置选项以从运行中过滤掉所有待处理的规范:RSpec.configuredo|config|config.filter_run_excludingskip:trueend此外,here是一个更详细的抑制输出的建议

  5. ruby-on-rails - 如何使用 JSON 的 Nokogiri 中的 XPath 从 eBay 和亚马逊抓取图像 - 2

    我正在尝试使用Nokogiri和XPath从网站上抓取图像,但到目前为止收效甚微。对于其HTML具有img和src的典型网站,我可以使用:tmp2=Nokogiri::HTML(open(site_url))tmp2.xpath("//img/@src").eachdo|src|...dowhateverend但是,某些网站(如Amazon和eBay)仅使用JavaScript触发特定图像。如果我查看代码,我可以看到数组中的数据。例如,来自Amazon:P.when('jQuery','cf').execute(function($,cf){P.load.js('http://z-ec

  6. ruby - Heroku 和网络抓取 - 2

    我有一个nokigiri网络抓取工具,它发布到我试图发布到heroku的数据库。我有一个sinatra应用程序前端,我想从数据库中获取它。我是Heroku和Web开发的新手,不知道处理此类问题的最佳方法。我是否必须将上传到数据库的网络爬虫脚本放在sinatra路由下(如mywebsite.com/scraper),并让它变得如此模糊以至于没有人访问它?最后,我想让sinatra部分成为一个从数据库中提取的restapi。感谢大家的参与 最佳答案 您可以采用两种方法。第一个是通过控制台使用herokurunYOURCMD运行scrap

  7. ruby-on-rails - Phusion Passenger 不在 Apache 上工作 - 2

    更新:当输入“passenger-memory-stats”时,我显示:---Passengerprocesses---Processes:0我该如何解决这个问题?为什么即使我在httpd.conf中添加它并重新启动apache,passenger也不会启动?我无法让PhusionPassenger在服务器上运行RubyonRails。我已经按照Phusion网站上的所有说明安装了passenger并修改并创建了ApacheVirtualHost以指向新目录并验证所有.conf文件都已成功加载。还加载了httpd-Mpassenger_module。我还在本地主机上成功运行了Passe

  8. ruby-on-rails - 检测 Rails 是否正在运行站点 - 2

    我所在的团队负责管理公司面向公众的云平台。我们拥有大量运行面向互联网的VM的用户群。我想对我们的地址空间进行自动扫描,看看是否有人在运行Rails应用程序,这样我就可以通知他们升级他们的Rails版本,以避免本周出现的严重安全漏洞。我注意到在某些Apache部署中,有一个有用的PassengerHeader:X-Powered-By:PhusionPassenger(mod_rails/mod_rack)2.0.3然而,这并不可靠。我想知道是否有一种可靠的方法来检测在Web服务器后面运行的Rails,无论是使用响应header还是某种可以确定的GET/POST。谢谢!

  9. ruby-on-rails - 在 Model 类方法中指定当前抓取的记录 - 2

    我有一个类方法,我想在其中修改当前由ActiveRecord::Relation对象抓取的记录。但是我不知道如何在类方法中引用当前范围。self不会这样做。例子:classUser我会这样使用它:User.some_scope.modify_those_records所以User.some_scope会返回给我一个ActiveRecord::Relation,其中包含一堆User记录。然后我想在该类方法中修改这些记录,然后返回它们。问题是:我不知道如何在类方法中明确引用“那组记录”。 最佳答案 您可以使用current_scope:

  10. ruby - 如何为 WordPress 多站点编写 h2o webserver mruby 处理程序? - 2

    这就是Apache所需要的。我想知道howIdothisinh2o.RewriteEngineOnRewriteBase/RewriteRule^index\.php$-[L]#addatrailingslashto/wp-adminRewriteRule^([_0-9a-zA-Z-]+/)?wp-admin$$1wp-admin/[R=301,L]RewriteCond%{REQUEST_FILENAME}-f[OR]RewriteCond%{REQUEST_FILENAME}-dRewriteRule^-[L]RewriteRule^([_0-9a-zA-Z-]+/)?(wp-(c

随机推荐