A reescrita interna no Nginx não funciona e é redirecionada

1

Oi, quero uma regra de regravação, mas não quero redirecioná-la e solicitar um URL, mas carregar conteúdo diferente de outro URL. Então, eu acho que o último e quebrar bandeira na diretiva reescrever é uma boa solução. Mas, é sempre redirecionado, eu procuro o problema e eles afirmam que, se a nova URL não for da instância nginx, ela será redirecionada. Aqui várias linhas da minha configuração:

...
rewrite ^(/\w+/$)(.+\.php) /$2 last;
proxy_pass upstream_name:80;
...

O que eu pergunto é como posso reescrever mas não redirecionar?

Atualização: Por exemplo, eu quero fazer um novo como / link / asd, mas não há / link / asd no meu aplicativo da web. Quero meu recurso de carregamento de link / link / asd do link / asd. então, eu acho que a reescrita última bandeira é uma boa solução. Se o meu entendimento for falso, por favor corrija-me e explique-o. Obrigado

    
por Ilham Sulaksono 13.10.2017 / 12:40

1 resposta

0

Se você quiser reescrever exatamente /link/example a /example , onde example é qualquer coisa, você pode usar este rewrite :

rewrite ^/link/(.+)$ /$1 last;

Isso também corresponderá a /link/example/something/else , pois o .+ corresponde a todos os caracteres antes do final da string ( $ ). Se você quiser restringir quais caracteres são permitidos no grupo de captura, por exemplo, excluir / do grupo de captura, é possível usar a notação [^/]+ para o regex.

    
por 15.10.2017 / 21:46

Tags