Django应用程序在其自己的子域上

时间:2010-03-02 08:36:50

标签: django subdomain

我有以下目录结构:

/ (index)
/blog/
/about/

只运行一个Django实例,我希望URL显示为blog.domain.com(对于我的博客应用),但所有其他URL都在(www。)domain.com /.

下运行

我肯定会对链接进行硬编码,强制进行此设置(基本上,网络服务器会收听blog.domain.com,并以domain.com/blog/进行转发,但用户仍会看到blog.domain.com)但我希望能够以正确的方式解析我的URL配置,但仍然可以让他们指向domain.com或blog.domain.com,具体取决于正在解析的网址(app)。

这样做有好办法吗?我在考虑使用自定义模板标签而不是{% url my_resolve_name slug="test" as test %}

2 个答案:

答案 0 :(得分:1)

没有内置的支持,但很多人(包括我)都以一种黑客的方式做到了。

http://uswaretech.com/blog/2008/10/using-subdomains-with-django/
http://uswaretech.com/django-subdomains/

答案 1 :(得分:0)

在nginx上试试这个:

server { 
    listen 80;
    server_name www.example.com;

    if ($host ~* "^blog\.example\.com") {
        rewrite  ^(.*)$ /blog$1 permanent;
        break;
    }
}

这会将对blog.example.com/some/params/的所有请求重写为www.example.com/blog/some/params