我想在不触及主机文件或修改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'
任何人都知道为什么不去主页?
再次感谢!