Django更改根URL

时间:2013-11-06 12:32:51

标签: python django apache

我正在尝试完成Django初学者tutorial

我在django测试Web服务器上正常运行该站点。我试图让它在Apache上运行。

我已经设置了Apache,因此http://mydomain.com/mysite/将进入Django根项目(mysite)。但是我不能参加投票,因为我认为它期待http://mydomain.com/polls/

如何将项目根网址从http://mydomain.com/polls/更改为http://mydomain.com/mysite/polls

我在root urls.py文件中尝试了以下内容:

urlpatterns = patterns('',
    url(r'^mysite/' include('mysite')),
    url(r'^polls/', include('polls.urls', namespace="polls")),
    url(r'^admin/', include(admin.site.urls)),
)

但它不起作用。我搜索了尽可能多的文档,但我无法找到答案。

我的Apache配置如下:

WSGIScriptAlias "/mysite/" /usr/local/mysite/mysite/wsgi.py
WSGIPythonPath /usr/local/mysite

<VirtualHost *:80>
  <Directory /usr/local/mysite/mysite>
    <Files wsgi.py>
      Order deny,allow
      Allow from all
    </Files>
  </Directory>
</VirtualHost>

@scriptmonsters回答更改了根URL,但是现在Apache将根网址后的所有内容附加到wscgi文件的位置。因此,如果我尝试http://myhost.com/mysite/polls/,我会在apache日志中获得not found这个:

[Wed Nov 06 12:49:23 2013] [error] [client 109.144.246.190] Target WSGI script not found or unable to stat: /usr/local/mysite/mysite/wsgi.pypolls

(请注意,它尝试访问的文件是wsgi.pyPOLLS

1 个答案:

答案 0 :(得分:1)

我认为您需要以下内容:

urlpatterns = patterns('',
    url(r'^mysite/polls/', include('polls.urls', namespace="polls")),
    url(r'^mysite/admin/', include(admin.site.urls)),
)