
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.
- mysite.com/index.html -> redirigir a mysite.com
- 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 #
?