【问题标题】:Django: At the view level, can I add a 'noindex' header to a 'redirect' response?Django:在视图级别,我可以在“重定向”响应中添加“noindex”标头吗?
【发布时间】:2017-07-20 17:37:56
【问题描述】:

我可以使用 robots.txt,也可以使用自定义 Django 中间件,但我想知道这是否可以在视图级别完成。

【问题讨论】:

  • 为重定向响应添加noindex 意义不大。搜索引擎不索引重定向。在重定向上使用 noindex 是多余的。

标签: redirect django-views views noindex


【解决方案1】:

您可以使用以下 sn-p 添加 noindex 标记:

from django.http import HttpResponse

response = HttpResponse("Text only, please.", content_type="text/plain")
response['X-Robots-Tag'] = 'noindex'
return response

【讨论】:

    【解决方案2】:

    因为你可能会经常这样做,你可以把它变成一个装饰器。

    装饰器.py

    def robots(content="noindex, nofollow"):
        
        def _method_wrapper(func):
            
            @wraps(func)
            def wrap(request, *args, **kwargs):
                response = func(request, *args, **kwargs)
                response['X-Robots-Tag'] = content
                return response
    
            return wrap
            
        return _method_wrapper
    

    views.py

    from .decorators import robots
    
    @robots("noindex")
    def something(request):
        return HttpResponse("")
    
    @robots("all")
    def something_else(request):
        return HttpResponse("")
    

    【讨论】:

      猜你喜欢
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 2018-04-09
      • 1970-01-01
      • 2011-02-24
      • 2021-08-29
      相关资源
      最近更新 更多