我在一台服务器上有两个虚拟主机:srv-08.zone08.edu:80tulip.zone08.edu:8088
当我输入 srv-08.zone08.edu:8088 时,我什么也不需要得到。
文件 /etc/apache2/ports.conf:
NameVirtualHost srv-08.zone08.edu:80
NameVirtualHost tulip.zone08.edu:8088
Listen 80
Listen 8088
文件配置 srv-08.zone08.edu (前几行):
<VirtualHost srv-08.zone08.edu:80>
ServerAdmin [email protected]
ServerName srv-08.zone08.edu
***
文件配置tulip.zone08.edu(前几行):
<VirtualHost tulip.zone08.edu:8088>
ServerAdmin [email protected]
ServerName tulip.zone08.edu
***
我认为,更改 VirtualHost(只是)和 NameVirtualHost 就足够了。但这还不够……(这样,其他连接的 PC 就看不到我的主机了。有什么想法吗?
配置文件:
<VirtualHost tulip.zone08.edu:8088>
ServerAdmin [email protected]
ServerName tulip.zone08.edu
DocumentRoot /usr/apache
ErrorLog /home/usr/apache2.log
RewriteEngine on
RewriteCond %{HTTP_HOST} srv-08.zone08.edu
RewriteRule (.*) http://srv-08.zone08.edu/$1
<Directory "/usr/apache">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from all
</Directory>
</VirtualHost>
配置正确。一切正常,除了 RewriteEngine 和正确的主机名
答案1
由于您将它们放在同一台服务器上,并且该服务器正在监听两个端口,因此当您连接到 Apache 实际处理的端口时,您不可能什么也得不到。您可以做各种事情,但这些事情可能正是您想要的,也可能不是您想要的。我会尽力帮助您。
首先,最好在配置文件中输入系统的 IP 地址,而不是主机名。这样,即使遇到 DNS 问题,也不会让 Apache 感到困惑。
这是郁金香服务器的新配置,只需记住输入您自己的实际 IP 地址,而不是我使用的 1.2.3.4。您还需要修复可用日志文件的路径,我已在其中写入 PATH-TO-LOGFILE
<VirtualHost 1.2.3.4:8088>
ServerAdmin [email protected]
ServerName tulip.zone08.edu
DocumentRoot /usr/apache
ErrorLog /home/usr/apache2.log
RewriteEngine on
RewriteLog PATH-TO-LOGFILE
RewriteLogLevel 3
RewriteCond %{HTTP_HOST} srv-08.zone08.edu
RewriteRule (.*) http://srv-08.zone08.edu/$1 [R,L]
<Directory "/usr/apache">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from all
</Directory>
</VirtualHost>
我修复了另一个拼写错误,您用的是 /VintualHost 而不是 /VirtualHost,并且我为重写过程添加了一些日志记录。一旦您按照您想要的方式运行,您就可以删除 RewriteLog 和 RewriteLogLevel 行,但现在您需要它们来找出我可能误解的任何内容。