O primeiro de todos: o uso de if
é desencorajado pelo autor do Nginx por uma boa razão: ele tem efeitos colaterais muito desagradáveis. Você ainda pode usá-lo em casos de uso simples, mas usar if
e rewrite
simultaneamente é como uma bomba.
Seu caso de uso pode ser facilmente implementado usando duas seções server
:
server {
server_name domain.com;
rewrite ^ /index.php?/$request_uri last;
}
server {
server_name ~ ^(?<SUB>.+)\.domain.\com$ ;
rewrite ^ /index.php?/$SUB/$request_uri last;
}