我们托管两个网站,目前没有域名,因此我们使用 IP 地址。我希望通过以下方式访问这两个网站:
http://123.123.123.123/Site1
http://123.123.123.123/Site2
Site1 是一个小型的关于我们类型站点。Site2 是一个基于 Django 的文件上传站点。
这是我的 httpd.conf 文件:
WSGIPythonPath /var/www/Site2/src/site
Listen 80
NameVirtualHost *:80
# Site1
<VirtualHost *:80>
ServerName Site1
DocumentRoot /var/www/Site1
</VirtualHost>
# Site2
<VirtualHost *:80>
ServerName Site2
WSGIScriptAlias /Site2 /var/www/Site2/src/site/wsgi.py
<Directory /var/www/Site2/src/site>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
Alias /static/ /var/www/Site2/src/site/static/
<Directory /var/www/Site2/src/site/static>
Order deny,allow
Allow from all
</Directory>
<Location /var/www/Site2/src/site/static/>
AuthType Basic
AuthName "site"
AuthBasicProvider wsgi
WSGIAuthUserScript /usr/local/wsgi/scripts/auth.wsgi
Require valid-user
</Location>
</VirtualHost>
123.123.123.123/Site1 工作正常。访问 123.123.123.123/Site2 只会得到/Site2 的索引页。
如果我重新排序 VirtualHost 声明,则 Site2 可以工作,但 Site1 不工作。
我是否忽略了一些至关重要的东西?
我在许多搜索结果和论坛上都看到过这个问题,但我还没有找到解决方案。
答案1
您需要使用Alias
指令而不是虚拟主机,因为您正在处理单个域。
请参阅此帖子的已接受答案:
https://stackoverflow.com/questions/9505689/virtual-hosts-on-apache-with-urls-like-subfolders