У меня около 4 разных имен хостов, определенных в файлах sites-enabled / domain.tld. Каждый из файлов имеет следующий вид:
#Redirect everything to the main site.
server {
server_name *.abc.net;
listen 80;
root /var/www/vhosts/abc.net/httpdocs;
if ($http_host != "acb.net") {
rewrite ^ http://abc.net$request_uri permanent;
}
include /etc/nginx/conf.d/restrictions.conf;
#Additional rules go here.
# Only include one of the files below.
include /etc/nginx/conf.d/wordpress.conf;
# W3 Total Cache Rules
include /var/www/vhosts/abc.net/httpdocs/nginx.conf;
}
Каждый из серверных блоков в папке с поддержкой сайта изменяет только имя домена, поэтому abc.net становится xyz.com и так далее.
Проблема в том, что, независимо от наличия всех этих файлов конфигурации, все vhosts просто перенаправляют на один vhost. Я попытался перезапустить сервер nginx, перезагрузить его, а также перезагрузил сервер.
Эти запросы отправляются на вышестоящий php, на котором запущен PHP-FPM, если это помогает, и все домены работают на них.
Ценю вашу помощь. Спасибо :)
Попробуйте изменить блок server_name в каждом vhost
server {
...
server_name example.com *.example.com;
...
}
или, как рекомендовано nginx
server {
listen 80;
server_name *.example.com;
return 301 http://example.com$request_uri;
}
server {
listen 80;
server_name example.com;
...
your config removing the if part
...
}
так...
if ($http_host != "acb.net") {
rewrite ^ http://abc.net$request_uri permanent;
}
входит в каждый блок vhost? Или вы также не забыли изменить имя хоста на правильное значение?
Если нет, это многое объяснит :-)