
He tenido problemas con esta configuración de nginx y, después de recorrer este sitio, me pregunto si es posible.
Tengo una aplicación de una sola página muy simple con la siguiente ruta:
server {
listen 80 default_server;
root /var/www/html;
location / {
try_files $uri $uri/ /index.html;
}
}
El SPA (un sitio de Gatsby, si eso importa) servido por esta configuración contiene rutas como domain.com/about
y domain.com/about/some-page
que ofrecen contenido específico. Sin embargo, existe una versión anterior del sitio web que no era un SPA y tiene páginas como domain.com/about.html
y domain.com/about.html#some-page
, que ofrecen contenido equivalente, respectivamente.
Realmente me gustaría poder redirigir domain.com/about.html
> domain.com/about
y domain.com/about.html#some-page
> domain.com/about/some-page
para que los enlaces antiguos al sitio que están en el mundo todavía vayan a la ruta correcta del SPA, pero todos mis intentos de crear reescrituras simplemente devuelven un 404 o directamente de regreso a la raíz.
¿Es posible reescribir la URL (entonces domain.com/about.html
> domain.com/about
) y también redirigir esa URL para /index.html
que funcione como un SPA?
Respuesta1
Pude resolver este problema manteniendo la misma configuración de nginx y reescribiendo la URL en el lado del cliente dentro de Gatsby usando Reach Router.