我为这个问题的公然无知而道歉,但我已经被指控在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
这主要的问题是谷歌正在索引两个几乎完全相同的页面,根据我们客户的高薪在线战略合作伙伴,它是糟糕的搜索引擎优化。
我知道这很模糊,但如果有人可以提供帮助,那么就会有很多欢乐。
感谢阅读!
答案 0 :(得分:3)
我认为你的顾问是对的。一个URL =一个资源。无论如何,在一个资源上有两个网址是非常脏的。这就是为什么Django具有从非尾部斜杠自动重定向到带有斜杠的URL的原因。在certain conditions下。
我非常确定您的网址定义regexp / services /缺少尾部斜杠。无论如何,你应该只使用尾随斜杠:
确保APPEND_SLASH设置为True :from django.conf import settings; print settings.APPEND_SLASH
确保您的所有网址正则表达式都有尾部斜杠,例如url(r'foo' ...)
错误,而url(r'foo/' ...
)传递几乎因为可能存在冲突而且url(r'foo/$' ...
)更好
确保所有MetaInfo对象都有包含尾部斜杠的网址,例如MetaInfo.objects.exclude(url__endswith='/')
应返回MetaInfo而不在url中删除斜杠