【问题标题】:Unreachable Robots.txt in Django appDjango 应用程序中无法访问的 Robots.txt
【发布时间】:2013-08-23 02:27:41
【问题描述】:

收到来自 google 网站管理员工具的通知,由于“无法访问 robots.txt”,Google 的爬虫机器人已停止抓取某个特定网站。不幸的是,除此之外,谷歌没有提供有关爬虫错误的任何其他详细信息。

我有

<meta name="robots" content="index, follow">

包含在 base.html 模板中作为我的元标记之一,我为每个 django 应用程序都这样做,而且我的任何其他网站都没有这个问题。如果我错了,请纠正我,但我也认为 robots.txt 不是 google 索引你的必要条件。

我尝试通过安装和配置 django-robots (https://github.com/jezdez/django-robots) 并将其添加到我的 url conf 来解决:

(r'^robots\.txt$', include('robots.urls')),

我最新的谷歌爬虫抓取(在将 django-robots 推送到 prod 之后)仍然返回相同的错误。

我没有任何特殊的抓取规则,即使不包含 robots.txt 文件也可以,以便谷歌索引整个网站。在我尝试此处提到的其他两种方法之前,任何人都对快速修复有任何想法:http://fredericiana.com/2010/06/09/three-ways-to-add-a-robots-txt-to-your-django-project/

【问题讨论】:

  • 当您尝试直接访问 robots.txt 网址时会得到什么?
  • 只要到达 404 页面
  • According to Google 此消息意味着您的服务器在某一时刻提供 5xx 错误消息,而不仅仅是直接 404。删除 urls.py 中的 robots.txt 条目,并尝试使用“Fetch As Google 网站管理员工具中的“Google”功能,以检查是否仍然如此。您应该有望获得“未找到”状态。

标签: django heroku seo django-templates


【解决方案1】:

我尝试从 urls.py 中完全删除 robots.txt 行并以 google 方式获取,但这并没有解决问题。

(r'^robots\.txt$', include('robots.urls')),

我通过稍微修改我的根 urlconf 解决了这个问题

from django.http import HttpResponse


(r'^robots\.txt$', lambda r: HttpResponse("User-agent: *\nDisallow: /*", mimetype="text/plain")),

现在 googlebot 可以正常抓取了。希望我能更好地理解为什么这个特定的解决方案对我有效,但它确实有效。

感谢路德维克的帮助。

【讨论】:

    【解决方案2】:

    如果你有权限,那么

    Alias /robots.txt /var/www/---your path ---/PyBot/robots.txt
    

    为您的virtual host 添加别名。 (在 apache 配置文件中) 类似的 favicon

    Alias /favicon.ico /var/www/aktel/workspace1/PyBot/PyBot/static/favicon.ico
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 2014-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多