nginx reescreve o subdomínio para o arquivo como uma variável

3

Como você obtém o subdomínio como uma variável para adicionar em uma reescrita?

hello .example.com deve ir para example.com/user.php?u= hello , mas ainda é exibido como apenas hello . example.com

Atualmente, estou fazendo o link hello , mas gostaria de ter nomes de domínio no estilo Tumblr para os usuários.

rewrite ^/users/(.*)$ /user.php?u=$1 last;

Além disso, se houver páginas como / settings / depois do subdomínio hello.example.com/settings/, preciso reescrever para um settings.php

    
por ethree 15.12.2012 / 01:01

1 resposta

3

Duas coisas. Em primeiro lugar, você precisa ler a variável do host para obter o subdomínio e configurá-lo para uma variável que será usada posteriormente.
usei a variável $ sub_domain e, em seguida, anexe a variável ao URI.

if ($host ~* (.*)\.example\.com) {
     set $sub_domain $1;
     rewrite ^/user.php$ /user.php?u=$sub_domain
}

A linha de reescrita precisa ser ajustada ainda mais. Eu dei um exemplo aqui. Consulte a documentação sobre variáveis do nginx para obter as opções disponíveis.

    
por 15.12.2012 / 02:47

Tags