4

问题是我在 localhost 的子域中安装了一个 django 项目,同时我有 localhost 用于其他没有 Django 的东西。

每当我访问 a1.localhost 时,它都会显示我的 django 欢迎页面,但是当我只想访问 localhost 时,它也会显示相同的 django 欢迎页面而不是 index.html。

到目前为止,这就是我所拥有的:

Hosts:
127.0.0.1       localhost
127.0.0.1       a1.localhost

vhosts.conf:
#-- a1.localhost
<VirtualHost *:80>
    ServerName a1.localhost
    WSGIScriptAlias / "C:/workspace/website1/apache/django.wsgi"
    <Directory "C:/workspace/website1/apache">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

#-- localhost
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "C:/workspace/website1/django_project"
</VirtualHost>


django.wsgi

import os
import sys

path = "C:/workspace/website1/apache/django_project"
if path not in sys.path:
    sys.path.append(path)


os.environ['DJANGO_SETTINGS_MODULE'] = 'django_project.settings'

import django.core.handlers.wsgi

我想要实现的是在 localhost 中显示我的普通 index.html 文件,在 a1.localhost 中显示我的 django 项目。

谢谢。

4

1 回答 1

2

我认为这里发生的是第一个虚拟主机接受到端口 80 的所有流量并将其重定向到 django 应用程序。第二个虚拟主机根本没有接收流量。当它们是不同的端口时,整个事情都会起作用,因为在这种情况下,apache 知道哪个虚拟主机应该接收流量。

正如 Kay Zhu 所说,您可能需要在这些声明之前添加一行来设置虚拟主机命名:

名称虚拟主机 *:80

有关更多信息,请参阅本文:http: //digitalpbk.blogspot.com/2007/01/making-subdomains-on-localhost.html

于 2012-11-07T23:01:10.303 回答