我试图建立一个URL别名应用程序,它允许用户在他的网站上为现有的网址创建别名。Django:创建/修改请求对象
我试图通过中间件,其中request.META['PATH_INFO']
是针对别名的数据库记录检查,以做到这一点:
try:
src: request.META['PATH_INFO']
alias = Alias.objects.get(src=src)
view = get_view_for_this_path(request)
return view(request)
except Alias.DoesNotExist:
pass
return None
然而,对于这种正常工作是生命重要的是(至少) PATH_INFO被更改为目标路径。
现在有一些片段允许开发人员创建测试请求对象(http://djangosnippets.org/snippets/963/,http://djangosnippets.org/snippets/2231/),但这些片段声明它们仅用于测试目的。
当然,这可能是这些代码片段适合在现场环境中使用,但我对于Django请求处理的知识还太未开发以评估这一点。
重定向更好,不仅因为它们更容易维护的代码,而且 - 他们让你为每个页面唯一的URL。这可能对您的搜索排名更好。 – Evgeny 2010-11-22 18:10:07
这可以通过阻止机器人直接访问别名的url来绕过吗? – 2010-11-24 13:47:03