Назад | Перейти на главную страницу

nginx перенаправляет субдомен в папку

В Nginx я хотел бы перенаправить свой subdomain.domain.com на domain.com/sub/. Как мне это сделать? Я хотел бы использовать существующий файл конфигурации сайтов для domain.com вместо создания нового.

файл конфигурации, который у меня есть (как мне добавить к этому)

======

server {
listen   80;
server_name www.domain.com domain.com  *.domain.com;
access_log /srv/www/domain.com/logs/access.log;
error_log /srv/www/domain.com/logs/error.log;

location / {
    root   /srv/www/domain.com/public_html;
    index  index.html index.htm;
}

расположение / phpmyadmin {корень / usr / share; индекс index.php; }

location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param  SCRIPT_FILENAME  /srv/www/domain.com/public_html$fastcgi_script_name;
}

}

=========

Извините, Майк, ваше решение if - плохая идея ... обратитесь к Nginx ловушки на вики-странице, почему (в этом случае nginx будет оценивать директиву для каждого запроса, что неэффективно) ...

Добавьте еще один серверный блок над тем, который у вас есть:

server {
   server_name subdomain.domain.com;
   rewrite ^ $scheme://domain.org/subdomain$request_uri redirect;
}

и волшебство будет сделано ...

Это войдет в ваш серверный блок. Это не проверено, но должно сработать или дать вам представление

if ($host ~* "^(.*)\.domain\.com$"){
  set $subd $1;
  rewrite ^(.*)$ http://domain.com/$subd permanent;
  break;
}