python – 为什么我的Django项目同时在子域和localhost中显示?

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

每当我访问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项目.

谢谢.

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

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

NameVirtualHost *:80

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

点赞