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

1

Sou um desenvolvedor de software que escreve um aplicativo JS de página única. Eu não sou de forma alguma um administrador de sistemas, 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. mysite.com/index.html - > redirecionar para mysite.com
  2. mysite.com/path/they/remember - > redirecionar para a versão com hash: meusite.com / # / caminho / eles / lembrar

Eu tentei várias maneiras, mas continuo correndo em loops de redirecionamento. Aqui está a configuração que tenho atualmente:

Observação: você perceberá 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 fornece redirecionamentos por toda parte. Alguém tem alguma sugestão ou sabe como realizar o que estou tentando fazer do jeito nginx?

    
por Jason McClellan 14.09.2013 / 11:02

1 resposta

0

primeiro, aumente o nível de log e verifique seus registros.

seu último bloco de localização parece ser falso.

também, return 301 http://mysite.com\#/$1; não parece ser legítimo; você queria fazer return 301 http://mysite.com/\#/$1/; ?

você precisa escapar de # ?

    
por 15.09.2013 / 23:38

Tags