【问题标题】:Django googlebot crawling ajax urlDjango googlebot 抓取 ajax url
【发布时间】:2014-11-21 02:32:34
【问题描述】:

我已经设置了一个 Django 站点并从 GoogleBot 接收到此警报,我认为它在我的 URL 中放入了一个测试参数(零)。零是我的数据库中不存在的主键

<WSGIRequest
path:/for_sale_detail/0/,
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
COOKIES:{},
META:{u'CSRF_COOKIE': u'xxxxxxxxxxxxxxxxx',
'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'HTTP_ACCEPT_ENCODING': 'gzip,deflate',
'HTTP_CONNECTION': 'close',
'HTTP_FROM': 'googlebot(at)googlebot.com',
'HTTP_HOST': 'example.com',
'HTTP_USER_AGENT': 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',

这是我的 url.py,第一组数字是我的主键(下面的示例是数字 2):

url(r'^for_sale_detail/(?P<slug>[-\w\d]+)/$', for_sale_detail, name='for_sale_detail'),

在我的 html 文件中,ajax URL(用户交互后填充的动态内容)以这种方式调用:

var slug = '2-terrace-link-house';

for (abc < 10)
{
    ...
    slug = new_url;
    call_detail_page(); 
}

function call_detail_page()
{
    var detail_page_url = "{% url 'for_sale_detail' '2-terrace-link-house' %}".replace ('2-terrace-link-house', slug);

     $.colorbox({
        iframe : true,      
        width : '1200px',
        height : '600px',           
        href:detail_page_url
        });     
}

我创建了 sitemap.xml 文件以指向所有有效的 slug 地址,但当 GoogleBot 抓取时,它仍会将“0”附加到我的 URL slug。理想情况下,我希望所有详细信息页面都被 google 索引和找到,因此不希望将 GoogleBot 重定向到不存在的页面

一个有效的 URL 是这样的:

http://www.example.com/for_sale_detail/2-terrace-link-house

谢谢

【问题讨论】:

    标签: ajax django url googlebot


    【解决方案1】:

    如果该项目存在,您可以检查 for_sale_detail,如果不存在则返回 HttpResponseNotFound 或提高 Http404 exception

    【讨论】:

    • 这就是我最初不想做的事情,因为我希望 GoogleBot 使用站点地图抓取此页面,但也许可以实现这一点,因为不认为 GoogleBot 可以生成任何随机 url slug
    猜你喜欢
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 2021-03-22
    • 2015-01-22
    • 2014-12-30
    • 2010-11-29
    相关资源
    最近更新 更多