麻烦与VirtualHosts

在单机上,我已经设置了两个WordPress站点使用aproperiate setus下面每个在Apache网站我有单独的configuration为每个域:

<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www_domain1 <Directory /var/www_domain1/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ServerName domain1.com ServerAlias www.domain1.com ErrorLog /var/log/apache2/error_domain1.log CustomLog /var/log/apache2/access_domain1.log combined </VirtualHost> 

和目标文件夹中的.htaccess

 <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> order deny,allow <Files wp-config.php> order allow,deny deny from all </Files> # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 

我有两个问题:

  • www.domain1.com总是被redirect到domain1.com
  • foo.domain2.com被redirect到domain1.com(域名1是按字母顺序排列的,我认为,但这还不是我想要的)

redirect不是由设置服务器名和别名引起的,而是非常像“UseCanonicalName On”..它应该被设置为off。

第二个问题,您应该添加“NameVirtualHost *”到主configuration文件(取决于您正在运行的平台/发行版)。 把*放在那里,而不是你的虚拟主机定义中的*地址。

“redirect”是由将服务器名称设置为“domain1.com”,别名为“www.domain1.com”造成的。 这会导致Apache将所有对“www.domain1.com”的引用视为“domain1.com”。 如果您不想要这种行为,请不要创build别名。

这听起来像你可能会在你的主要httpd.conf文件中缺less一个“NameVirtualHost xxx.xxx.xxx.xxx”指令来告诉Apache使用基于名称的虚拟主机 – 这可以解释为什么两个虚拟主机的请求被定向到首先configuration虚拟主机。