Оптимальный способ создания правил перезаписи nginx для красивого URL

Доступ к веб-страницам осуществляется следующим образом:

example.com/?site=website 

В этом примере я захожу на веб-сайт, расположенный в домене example.com .

Может ли кто-нибудь предложить оптимальный способ переписывания правил, чтобы приведенное выше было показано и доступно по адресу example.com/website ?

nginx, Centos 7
0
03.02.2018, 21:17
2 ответа

Вы можете использовать следующее, помня, чтоIfIsEvil

location = / {
  if ($arg_site) {
    return 302 /$arg_site;
  }
}
1
28.01.2020, 02:45

Связано:

Идея заключается в том, что вы создаете цикл перенаправления, но на самом деле это не так. , так как есть разница между внешними и внутренними перенаправлениями, поэтому цикл не является замкнутым, потому что одно перенаправление явно только внешнее, а другое явно только внутреннее:

location = / {
    if ($arg_site) {
        return  302 /$arg_site;
    }
    return  200
    "<!DOCTYPE html><title>site</title>
    <form><input name='site' value='website'/></form>\n";
}
location / {
    rewrite     ^/([^/]*)\$     /?site=$1   break;
    proxy_pass  http://javabackend:8080;
}
0
28.01.2020, 02:45

Теги

Похожие вопросы