Я перешел с Apache 2 на nginx, и у меня возникли проблемы с решением мой контроль поддомена. Что я хочу: когда запрашивается x.domain.tld, внутренне перезаписывается в domain.tld / x
У меня проблема в том, что nginx всегда перенаправляет страницу, сообщая браузеру перенаправить на . Но на самом деле я хочу сделать это внутри себя, как это сделал Apache 2. Кроме того, если я запрашиваю только x.domain.tld, nginx возвращает 404. Он работает только тогда, когда я выполняю x.domain.tld / index.php
Вот моя конфигурация:
server {
listen 80 default;
server_name _ domain.tld www.domain.tld ~^(?<sub>.+)\.domain\.tld$;
root /home/domain/docs/;
if ($sub) {
rewrite (.*) /$sub;
}
# HIDDEN FILES AND FOLDERS
rewrite ^(.*)\/\.(.*)$ @404 break;
location = @404 {
return 404;
}
# PHP
location ~ ^(.*)\.php$ {
if (!-f $request_filename) {
return 404;
}
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/etc/nginx/sockets/domain.socket;
}
}
Спасибо!