我有一个问题。 我在IP 1.2.3.4上有一个用于domain1.com的VirtualHost,但是Apache向IP 1.2.3.4请求回复,忽略了ServerName。
所以,如果我将domain2.com指向1.2.3.4,我会看到/var/www/html/domain1.com的内容,而不是/ var / www / html / default的内容
哪里不对?
Listen 80 NameVirtualHost 1.2.3.4:80 <VirtualHost 1.2.3.4:80> SSLEngine off DocumentRoot /var/www/html/domain1.com ServerName www.domain1.com:80 <Directory "/var/www/html/domain1.com"> allow from all </Directory> LogLevel notice UseCanonicalName on </VirtualHost> <VirtualHost _default_:80> DocumentRoot /var/www/html/default <Directory /var/www/html/default> allow from all </Directory> </VirtualHost>
您在这里使用_default_将匹配尚未为其他VirtualHost定义的IP。 这意味着根据你的configuration对1.2.3.4:80的请求将使用第一个为www.domain1.com定义的VirtualHost 。 VirtualHost优先级由它们在configuration文件中的顺序来定义。
要达到您所需的configuration,请将您的默认VirtualHost移至www.domain1.com之上,并将IP从_default_更改为1.2.3.4 。
有关这些细节的更多信息列在Apache手册中,您可以在此链接中find它。