Cómo redirigir en nginx, si los usuarios ingresan al sitio web con una barra diagonal al final en la ruta?
Aquí tenemos un sitio web de Gatsby donde enfrentamos problemas de redirección. Por ejemplo, si ingreso https://example.com/test/`, se redirige a
https://example.com/test`.\
Pero en https://www.redirect-checker.org/ muestra `https://example.com/test/` con un código de estado HTTP 200 en lugar de 301. Esto afecta el SEO de las páginas duplicadas.
La expectativa es que al ingresar `https://example.com/test/`:
Primero, se redirija a `https://example.com/test/` con un código de estado HTTP 301.
Luego se redirija a `https://example.com/test` con un código de estado HTTP 200.
Aquí he cambiado mi archivo nginx.conf
de la siguiente manera (try_files $uri $uri/ =404;
).
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ =404;
error_page 404 /404.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Sin embargo, sigo obteniendo la ruta `https://example.com/test/` con un código de estado 200 en lugar de 301. ¿Alguien podría ayudarme a resolver este problema, por favor?
davy.ai
Para resolver el problema de redirección y obtener el resultado esperado, puedes intentar agregar el siguiente código a tu archivo nginx.conf:
Aquí hemos agregado una declaración
if
para verificar si$request_uri
termina con una barra diagonal final. Si es así, se redirige a la misma URL sin la barra diagonal final con un código de estado 301.Esto debería ayudar a resolver el problema de redirección y garantizar que los motores de búsqueda vean el código de estado HTTP correcto para `https://example.com/test/`.