¿Cómo configuro las reglas de reescritura de nginx para eliminar la página de índice de una aplicación JS de una sola página y redirigir las URL sin hash a URL con hash?

¿Cómo configuro las reglas de reescritura de nginx para eliminar la página de índice de una aplicación JS de una sola página y redirigir las URL sin hash a URL con hash?

Soy un desarrollador de software que escribe una aplicación JS de una sola página. De ninguna manera soy un administrador de sistemas, así que tengan paciencia conmigo.

Lo que me gustaría lograr es que se produzcan redireccionamientos cada vez que un usuario acceda a mi sitio con uno de dos patrones de URL potencialmente comunes/no deseados.

  1. mysite.com/index.html -> redirigir a mysite.com
  2. mysite.com/path/they/remember -> redirigir a la versión hash: mysite.com/#/path/they/remember

Lo he intentado de varias maneras, pero sigo encontrando bucles de redireccionamiento. Aquí está la configuración que tengo actualmente:

Nota: Notarás que /api también necesita que todas las solicitudes sean redirigidas internamente a través de un proxy oauth liviano, por lo que cualquier solución que utilice no puede interrumpir esta redirección.

server {

# Redirect all requests through /api/ to apiproxy.php
location /api {
    rewrite ^/api/?(.*)$ /apiproxy.php/$1 last;
}

location / {
    index index.html
}

# use case #1 (combined with use case #2 optionally, a url such as mysite.com/index.html/path/they/remember)
location ~ /index.html/?(.*) {
    return 301 http://mysite.com\#/$1;
}

location ~ /(.*) {
    return 301 http://mysite.com\#/$1;
}

Esta configuración me proporciona bucles de redireccionamiento por todos lados. ¿Alguien tiene alguna sugerencia o sabe cómo lograr lo que estoy tratando de hacer de forma nginx?

Respuesta1

Primero, aumente el nivel de registro y verifique sus registros.

Su último bloque de ubicación parece ser falso.

Además, return 301 http://mysite.com\#/$1;no parece ser legítimo; querias hacer return 301 http://mysite.com/\#/$1/;?

¿Necesitas escapar #?

información relacionada