Sou bastante novo nisso e tenho um servidor nginx instalado e funcionando em uma página da web simples. A configuração que tenho 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 nesta estrutura:
+------+ +----------+
+ html +-->+index.html|
+------+ +----------+
|
| +--------------+
+-->+scnd_page.html|
+--------------+
Quando eu acesso mywebsite.com
, eu vejo index.html
. Como eu poderia mywebsite.com/scnd_page/
apontar para send_page.html
?
Eu tentei algumas coisas criando
location /scnd_page {
}
Mas não tenho certeza se estou no caminho certo. Isso deve ser feito neste arquivo?
Responder1
Você poderia usarrewrite
para certificar-se de emitir redirecionamentos externos, de forma que .html
nunca fiquem visíveis para o usuário, etry_files
para servir os arquivos reais.
location / {
rewrite ^(/.*)\.html$ $1 redirect;
try_files $uri $uri/index.html $uri.html =404;
}
Eu não recomendaria apoiar uma barra final /$
para implicar \.html$
; a lógica para esse suporte seria um pouco feia, além de causar problemas extras se você tentar usar URLs relativos dentro do referido arquivo scnd_page.html
.
Responder2
Você pode simplesmente configurar o parâmetro index dentro do bloco location:
location /html/scnd_page { index scnd_page.html; }
Além disso, você pode definir como índice "secundário" o 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;
}
}