Como adicionar um arquivo diferente de index.html no nginx?

2

Então, sou relativamente novo nisso e tenho um servidor nginx funcionando em uma página da Web simples. A configuração que tenho em sites-available é:

server {
    listen 80 default_server;

    root /var/www/mywebsite/;
    index /html/index.html;

    server_name mywebsite.com www.mywebsite.com;

    location / {
            try_files $uri $uri/ =404;
    }
}

E meu index.html está localizado nessa estrutura:

+------+   +----------+    
+ html +-->+index.html|    
+------+   +----------+    
       |      
       |   +--------------+
       +-->+scnd_page.html|
           +--------------+

Quando acesso mywebsite.com , vejo index.html . Como eu poderia fazer mywebsite.com/scnd_page/ apontar para send_page.html ?

Eu tentei criar algumas coisas

location /scnd_page { 
}

Mas não tenho certeza se estou no caminho certo. Isso está mesmo a ser feito neste arquivo?

    
por Joe 02.10.2015 / 00:19

2 respostas

0

Você pode usar rewrite para ter certeza de emitir redirecionamentos externos, de forma que .html nunca seja visível para o usuário e try_files para veicular os arquivos reais.

location / {
    rewrite     ^(/.*)\.html$   $1  redirect;
    try_files $uri $uri/index.html $uri.html =404;
}

Eu não recomendaria o suporte a uma barra no final /$ para implicar \.html$ ; a lógica para tal suporte seria um pouco feia, além de também causar problemas extras se você tentar usar URLs relativas dentro do dito scnd_page.html .

    
por 02.10.2015 / 07:04
0

Você pode configurar o parâmetro index dentro do bloco de localização:

location /html/scnd_page { index scnd_page.html; }

Você também pode definir como índice "secundário" scnd_page.html globalmente:

server {

listen 80 default_server;

root /var/www/mywebsite/;
# carefull setting '/html/index.html'...
index index.html scnd_page.html;

server_name mywebsite.com www.mywebsite.com;

location / {
        try_files $uri $uri/ =404;
}

}

    
por 02.10.2015 / 18:52