Como posso configurar o nginx para usar URLs bonitas para sites estáticos?

6

Eu tenho vários sites estáticos (principalmente gerados pelo Sphinx), que estou tentando hospedar no meu VPS. Eu instalei e configurei o nginx de acordo com os guias, e posso exibir meus sites com sucesso, mas o problema é que as URLs são absolutas e parece feio.

Por exemplo, uma pasta de site típica pode ser semelhante:

/public_html/index.html /public_html/api.html /public_html/quickstart.html

E solicitações HTTP para / alterar o URL para " link ". Basicamente, desejo eliminar todos os prefixos estáticos dos requisitos de URL e forçar nginx a direcionar as solicitações recebidas para /, / api, / quickstart para os locais corretos, bem como forçar nginx a exibir URLs bonitos apropriados quando os usuários visitarem páginas.

Eu tentei googling, mas tudo que eu encontro é reescrever regras que eu sinto serem muito complicadas para o que estou tentando fazer.

Qualquer ajuda seria muito apreciada.

    
por rdegges 10.10.2010 / 05:38

2 respostas

6

Você deve usar try_files para isso. A ideia é que você crie seus URLs sem .html e o Nginx os adicionará silenciosamente. Exemplo de configuração abaixo.

server {
   #listen/server_name/root here.

   try_files $uri.html $uri $uri/ @notfound;

   location @notfound {
      alias /your/404/file.html
      return 404;
   } 
}
    
por 10.10.2010 / 13:06
2

Usar localização estática:

location / {
        index index.html;
        root /var/www/nginx-default;
}

location /api {
        index api.html;
        alias /var/www/nginx-default;
}

location /quickstart {
        index quickstart.html;
        alias /var/www/nginx-default;
}

regexp:

location ~/(.*)$ {
        alias /var/www/nginx-default/$1.html;
}
    
por 10.10.2010 / 06:34