Apache 2.4主机多个Django项目

时间:2015-02-05 17:36:08

标签: django apache http-status-code-404 virtualhost

我想在不触及主机文件或修改DNS条目的情况下在apache上托管多个django项目。我无法使用基于命名的虚拟主机设置,因为我无法修改DNS条目或主机文件。

理想情况下,我想像这样访问每个项目 http://my.website.com/project1
http://my.website.com/project2

(如果我正在做java项目。使用tomcat运行war文件,我可以像上面那样访问每个项目。)

这可能吗?我能让服务器监听不同的端口并指向适当的项目,但这不是我想要的。如上所述,我可以在apache中设置virtualhost来访问项目吗?

我的文件系统结构:
c:/apache2.4
C:/apache2.4/htdocs/www/MyDjangoApp/project1
C:/apache2.4/htdocs/www/MyDjangoApp2/project2
C:/python3.4

规范:Windows 2012 R2服务器,Apache 2.4(64位)+ mod_wsgi,Django 1.7,python 3.4(64位)

谢谢!

更新

所以我在服务器上的windows etc / hosts文件中添加了127.0.0.1 my.website.com/project1,并设置为虚拟主机

<VirtualHost *:80>
    ServerName my.website.com/project1    
    DocumentRoot "c:/Apache2.4/htdocs/www/MyDjangoApp"
    WSGIScriptAlias / "C:/Apache2.4/htdocs/www/MyDjangoApp/wsgi.py"
    <Directory "c:/Apache2.4/htdocs/www/MyDjangoApp">
        <Files wsgi.py>
        Order deny,allow
        Allow from all
        </Files>
    </Directory>
    ErrorLog "logs/project1-error.log"
    CustomLog "logs/project1-access.log" common
</VirtualHost>

现在我可以转到http://my.website.com/project1,但它将从django而不是主页转向404页面。 404页面提取了所有我的静态文件(图像和CSS),这是我的自定义404页面。如果我通过http://my.website.com/

访问,主页将会启动

很难让Django无法弄清楚主页在哪里....?

注意:如果没有任何虚拟主机设置,我可以进入实际页面。

my url.py:

urlpatterns = patterns('',
    url(r'^$', 'project1.views.home', name='home'),
    url(r'^login/$', 'project1.views.login'),        
)
handler404 = 'project1.views.error404'

任何人都知道为什么不去主页?

再次感谢!

0 个答案:

没有答案