1

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

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

如果我们访问“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

这样做的主要问题是谷歌正在索引两个几乎相同的页面,根据我们客户多付的在线战略合作伙伴的说法,这是糟糕的 SEO 。

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

谢谢阅读!

4

1 回答 1

3

我认为你的顾问是正确的。一个 URL = 一个资源。无论如何,在一个资源上有两个 url 是很脏的。这就是为什么 Django 具有从非斜杠自动重定向到带有斜杠的 url 的功能。在一定条件下

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

  1. 确保APPEND_SLASH设置为 Truefrom django.conf import settings; print settings.APPEND_SLASH

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

  3. 确保所有 MetaInfo 对象的 url 都带有斜杠,例如MetaInfo.objects.exclude(url__endswith='/')应该返回 MetaInfo 而不是 url 中的斜杠

于 2012-03-02T11:21:17.710 回答