В 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;
}