python - Django - 尾部斜杠重置页面标题

标签 python django url trailing-slash

对于这个问题的公然无知,我深表歉意,但我被指控修复 Django 中的一些我没有经验的东西!

我们遇到了网址和重复内容的问题。

如果我们访问“www.hello.com/services/”,那么我们就会得到完整的页面呈现,绝对没问题。

如果我们访问“www.hello.com/services”,那么我们会得到相同的内容,但默认值似乎是在一行中设置的:

class PageTitleNode(template.Node):?
 ?
    def render(self, context):?
        try:?
            meta_info = MetaInfo.objects.get(url=context['request'].path)?
        except ObjectDoesNotExist:?
            return u'This is our default page title'?
        return u"%s - hello.com" % meta_info.title

此问题的主要问题是 Google 正在为两个几乎相同的页面建立索引,根据我们客户支付过高的在线策略合作伙伴的说法,这是糟糕的 SEO。

我知道这很模糊,但如果有人可以提供帮助,那么我们会很高兴。

感谢您的阅读!

最佳答案

我认为你的顾问是正确的。一个 URL = 一种资源。无论如何,一个资源上有两个 url 是相当肮脏的。这就是为什么 Django 具有从非尾随斜杠自动重定向到带有尾随斜杠的 url 的原因。下certain conditions .

我很确定您的/services/的 url 定义正则表达式缺少尾部斜杠。无论如何,您应该仅使用尾部斜杠:

  1. 确保 APPEND_SLASH设置为 True:从 django.conf 导入设置;打印设置。APPEND_SLASH

  2. 确保所有网址正则表达式都有尾部斜杠,例如url(r'foo' ...),而 url(r'foo/' ...) 通过 勉强,因为可能存在冲突,并且 url(r'foo/$' ...) 更好

  3. 确保所有 MetaInfo 对象的 URL 都带有斜杠,例如MetaInfo.objects.exclude(url__endswith='/') 应返回 MetaInfo,网址中不带尾部斜杠

关于python - Django - 尾部斜杠重置页面标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9532407/

相关文章:

php - 有值的网址 - 没有参数? (获取请求)

python - 如何通过分隔符分割列,同时尊重要分隔的项目的相对位置

django - 何时使用上下文处理器

javascript - window.open 无法正常工作,解析 URL 被 chop

python - 调用从 Memcached 检索到的对象的方法

Django 站点 - 两个站点的不同 urls.py

c# - 从客户端 (*) 检测到潜在危险的 Request.Path 值

python - 漂亮地打印 Pandas 数据框

python - 每次获取字典值时执行函数的方法

python - TypeError: 'list' 不支持缓冲区接口(interface)