
Sou desenvolvedor de software e estou escrevendo um aplicativo JS de página única. Não sou de forma alguma um administrador de sistema, então, por favor, tenha paciência comigo.
O que eu gostaria de realizar é que os redirecionamentos ocorram sempre que um usuário acessar meu site com um dos dois padrões de URL potencialmente comuns/indesejados.
- meusite.com/index.html -> redirecionar para meusite.com
- mysite.com/path/they/remember -> redirecionar para a versão com hash: mysite.com/#/path/they/remember
Eu tentei de várias maneiras, mas continuo encontrando loops de redirecionamento. Aqui está a configuração que tenho atualmente:
Observação: você notará que /api também precisa que todas as solicitações sejam redirecionadas internamente por meio de um proxy oauth leve, portanto, qualquer solução que eu usar não poderá interromper esse redirecionamento.
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;
}
Essa configuração me dá loops de redirecionamento por toda parte. Alguém tem alguma sugestão ou sabe como realizar o que estou tentando fazer do jeito nginx?
Responder1
primeiro, aumente o loglevel e verifique seus logs.
seu último bloco de localização parece ser falso.
além disso, return 301 http://mysite.com\#/$1;
não parece ser legítimo; você queria fazer
return 301 http://mysite.com/\#/$1/;
?
você precisa escapar #
?