有没有人在他们的应用程序中使用过通配符子域名?我需要想出一种“本地化”我的应用程序的方法。当我说本地化时,我的意思是任何前往ny.foo.com/items/new/
的人都会被发送到一个查看数据库并在ny中搜索新项目的视图。显然,我们可以用任何州取代纽约。
任何提示都会很棒
谢谢!
答案 0 :(得分:5)
我会使用中间件来做,例如:
class StateCodeMiddleware(object):
def process_request(self, request):
bits = request.META['HTTP_HOST'].split('.')
if len(bits) == 3 and len(bits[0]) == 2:
request.state_code = bits[0]
else:
request.state_code = None
# Or a redirect to the default state.
然后在您的任何观看中,您只需检查request.state_code
并仅为该状态获取新项目。
编辑:对于开发,最好的方法是设置本地DNS服务器。例如。 dnsmasq非常容易配置:
address=/.dev/127.0.0.1 # in dnsmasq.conf
这使*.dev
指向localhost。您还必须将系统配置为使用本地DNS服务器(在UNIX系统上,通过将nameserver 127.0.0.1
放入/etc/resolve.conf
)来执行此操作。
或者,您可以列出/ etc / hosts中的所有域名(如果它是有限集):
127.0.0.1 ny.localhost, az.localhost # and so on