Como configuro regras de reescrita do nginx para remover a página de índice de um aplicativo JS de página única e redirecionar URLs sem hash para URLs com hash?

Como configuro regras de reescrita do nginx para remover a página de índice de um aplicativo JS de página única e redirecionar URLs sem hash para URLs com hash?

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.

  1. meusite.com/index.html -> redirecionar para meusite.com
  2. 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 #?

informação relacionada