Redirect todos os example.com/paths que não começam com example.com/wiki para example.com/wiki - NginX Proxy

1

Recentemente, movi meu site do Wordpress para a confluência e estou tendo problemas com redirecionamentos de página. Eu configurei uma página 404 personalizada para o meu Confluence, mas só funciona se você digitar

link

Mas se você for para um link antigo, como

link

Leva você à minha página de "confluência", mas o /wiki é um plugin especial que eu quero que seja o lado voltado para o público. Eu acesso a página através de um subdomínio diferente, em seguida, www.

Minha "solução alternativa" seria uma das duas coisas

1) Redirecionar todos os https://www.freesoftwareservers.com/index.php/* para https://www.freesoftwareservers.com/wiki

2) Redirecionar todos os https://www.freesoftwareservers.com/(Anything BUT /wiki) para https://www.freesoftwareservers.com/wiki

Encontrei algo próximo no site do NginX, mas era mais complicado do que o que eu precisava e estava tendo problemas com a expressão necessária.

link

Veja uma amostra da regra de reescrita do NGINX que usa a diretiva de reconfiguração. Ele faz a correspondência de URLs que começam com a string / download e, em seguida, incluem o diretório / media / ou / audio / em algum lugar mais adiante no caminho. Ele substitui esses elementos por / mp3 / e adiciona a extensão de arquivo apropriada, .mp3 ou .ra. As variáveis de US $ 1 e US $ 2 capturam os elementos do caminho que não estão mudando. Como exemplo, / download / cdn-west / media / file1 torna-se /download/cdn-west/mp3/file1.mp3.

server {
    ...
    rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last;
    rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra  last;
    return  403;
    ...
}

Talvez eu precise dividir isso em duas partes, um bloco de servidor que retorna 404 e um manipulador 404, mas gostaria de manter tudo isso no meu bloco de servidor nginx existente.

BTW Eu já estou usando a seguinte regra de reescrita para redirecionar domain.com/ para domain.com/wiki, mas isso só funciona se você digitar link sem nada no final.

rewrite     ^/$ /wiki permanent;

Qualquer ajuda é apreciada, há muitos links quebrados para o meu site flutuando na interweb:)

    
por FreeSoftwareServers 10.10.2016 / 04:52

1 resposta

0

Bem, assim que publiquei um Bounty, descobri enquanto escrevia uma descrição melhor para a minha pergunta ...

rewrite ^/index.php /wiki permanent;
    
por 13.10.2016 / 04:37