На одной машине я установил два сайта WordPress, используя подходящие настройки, как показано ниже, для каждого из сайтов apache, у меня есть отдельная конфигурация для каждого домена:
<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>
и у меня две проблемы:
Перенаправление не вызывается установкой имени сервера и псевдонима, а больше похоже на "UseCanonicalName On" ... оно должно быть отключено.
И вторая проблема, вы должны добавить «NameVirtualHost *» в основной файл конфигурации (зависит от платформы / дистрибутива, который вы используете). Поместите здесь *, а не IP-адрес, поскольку * в определениях вашего виртуального хоста тоже есть.
«Перенаправление» вызывается установкой имени сервера «domain1.com» с псевдонимом «www.domain1.com». Это заставляет Apache обрабатывать все ссылки на «www.domain1.com», как если бы они ссылались на «domain1.com». Если вам не нужно такое поведение, не создавайте псевдоним.
Похоже, вам может не хватать директивы NameVirtualHost xxx.xxx.xxx.xxx в вашем основном файле httpd.conf, чтобы сообщить Apache о необходимости использования виртуальных хостов на основе имен, что объясняет, почему запросы для обоих виртуальных хостов направляются на настроен первый виртуальный хост.