我正在使用Amazon Ec2,我整合了2个网站,需要为我的旧网站设置不同的重定向规则。但是当我尝试使用以下配置时,Web服务器始终采用第一个虚拟主机条目(site1.com)而不是第二个虚拟主机条目(site2.com)。 你能检查我是否遗漏了什么。
请参阅下面的配置。
httpd.conf:
Listen 0.0.0.0:80
Listen 0.0.0.0:443
Include conf/extra/httpd-vhosts-all.conf
httpd-vhosts-all.conf:
<VirtualHost *:80>
ServerName site1.com
ServerAlias site1.com
DocumentRoot "/websites/site1"
<Directory /websites/site1 >
Require all granted
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
</Directory>
RewriteEngine On
RewriteRule ^/page1$ page2.html
</VirtualHost>
<VirtualHost *:80>
ServerName site2.com
ServerAlias site2.com
DocumentRoot "/websites/site2"
<Directory /websites/site2 >
Require all granted
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
</Directory>
RewriteEngine On
RewriteRule ^/page3$ page4.html
</VirtualHost>
由于 希瓦
答案 0 :(得分:0)
LogFormat&#34;%h%l%u%t \&#34;%r \&#34; %&gt; s%b HOST =%{host} i ServerName =%v &#34;
答案 1 :(得分:0)
如果没有匹配其他主机,则默认使用第一个vhost。
所以你需要弄清楚为什么你不匹配第二个主机。
您是否正在使用www.site2.com?这将无法匹配第二个vhost(仅在没有www的情况下为site2.com设置)。我也不明白你为什么在ServerName和ServerAlias中设置相同的值?通常在第一个中设置首选ServerName,在第二个中设置任何别名(包括www版本)。
所以而不是:
ServerName site1.com
ServerAlias site1.com
您通常会这样做:
ServerName site1.com
ServerAlias www.site1.com
您还可以使用以下命令获取当前配置的vhost列表:
apachectl -S
除此之外,我所能建议的是寻找拼写错误,确保Apache正确重启(但这似乎没问题,因为你可以在第一次使用3&gt; 4重定向时让它工作),确保主机正确地适用于Apache(例如,如果Apache位于代理之后),并且根据Brandon的建议并检查日志文件中的页面存在错误。