我不太了解apache,而且在configurationmod_vhost_alias遇到了问题
这是我的httpd.conf文件:
UseCanonicalName Off LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon <Directory /var/www/sites/> Options FollowSymLinks AllowOverride All </Directory> <VirtualHost *:80> CustomLog logs/access_log.sites vcommon ServerAlias *.domain.com UseCanonicalName Off VirtualDocumentRoot /var/www/sites/%1/ </VirtualHost>
子域名没有www工作正常。 但我也需要使他们与www一起工作。
这是一个例子:
something.domain.com - site is loading www.something.domain.com - Not Found
我该怎么办?
VirtualDocumentRoot /var/www/sites/%1/正在查看名称的第一部分 – 所以对于something.domain.com它使用了something ,对于www.something.domain.com它使用的是www ,这将不起作用很好。
几个不同的select:
在两种情况下都可以使用something作为目录的something ; 而不是名字的第一部分,看看倒数第三:
VirtualDocumentRoot /var/www/sites/%-3/
切换到使用全名,然后创build一个符号链接(请参阅迈克尔的答案):
VirtualDocumentRoot /var/www/sites/%0/
something.domain.com和www.something.domain.com显然是不同的主机名。 而Apache在查找要提供的文件时将replace为%1 。 所以问题是/var/www/sites/www.something.domain.com不存在。
解决这个问题的一种方法(假设这两个网站应该提供相同的数据)是通过一个简单的符号链接:
ln -s something.domain.com /var/www/sites/www.something.domain.com
(我也错过了你需要%0而不是%1 ,就像Shane Madden的回答一样,所以也是这样。)