Ao configurar a error_page do segundo server, não funcionou. Coloquei caminho absoluto e acaba gerando erro 302, não gera erro 404. Alguma ideia do que aconteceu? Alguma ideia?
Ao configurar a error_page do segundo server, não funcionou. Coloquei caminho absoluto e acaba gerando erro 302, não gera erro 404. Alguma ideia do que aconteceu? Alguma ideia?
Olá, João. Tudo bem?
Compartilha o seu projeto aqui com a gente, ou os códigos dos arquivos correspondentes, assim consigo testar e elaborar uma resposta mais assertiva.
Sigo aguardando.
Esta é a configuração principal - nginx.conf:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include c:/dev/nginx-1.26.2/servers/*.conf;
}
Nessa pasta servers, tenho o arquivo default.conf, que configura o segundo server, eis seu conteúdo:
server {
listen 9090;
server_name localhost;
location / {
root c:/dev/html;
index index.html index.htm;
}
error_page 404 c:/dev/html/404.html;
location = c:/dev/html/404.html {
root html;
}
error_page 500 502 503 504 c:/dev/html/50x.html;
}
Olá, João.
O erro "ERR_UNSAFE_REDIRECT" pode estar ocorrendo devido a um problema na forma como o Nginx está configurado para lidar com páginas de erro. Há algumas questões na sua configuração que precisam ser ajustadas para redirecionar corretamente para a página de erro 404.
Aqui estão os pontos principais a ajustar:
Corrigir o caminho do arquivo: Na configuração do Nginx, a diretiva root especifica o caminho base para os arquivos. Quando você especifica location utilizando o caminho absoluto, pode causar problemas. O correto seria usar um caminho relativo à diretiva root.
Configuração correta de error_page: O Nginx trata páginas de erro de maneira diferente. Em vez de apontar para um caminho absoluto dentro da diretiva error_page, você deve usar um caminho relativo, pois o root já especifica onde os arquivos HTML estão localizados.
server {
listen 9090;
server_name localhost;
location / {
root c:/dev/html;
index index.html index.htm;
}
# Mapeamento para a página de erro 404
error_page 404 /404.html;
location = /404.html {
root c:/dev/html;
}
# Páginas de erro 500, 502, 503, 504
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root c:/dev/html;
}
}
Qualquer dúvida manda aqui. Bons estudos.