Мне нужно преобразовать конфигурацию обратного прокси-сервера Apache, которая использует RewriteCond и RewriteRule, в Nginx.
Как мне преобразовать что-то подобное в конфигурацию nginx?
(это в основном/единственном <VirtualHost *:443>
блоке)
RewriteCond %{HTTP_HOST} ^stagingapi$ [NC]
RewriteRule ^/(.*) https://staging-zone.mydomain.com/$1 [R,L]
решение1
RewriteRule имеет в качестве первого параметра регулярное выражение, которое соответствует всем URI, начинающимся с /
, а в качестве второго параметра — подстановку, которая перенаправляет сайт "stagingapi" (флаг R) наhttps://staging-zone.mydomain.com/
Попробуйте что-то вроде:
server{
listen 443;
server_name stagingapi;
return 301 $scheme://staging-zone.mydomain.com$request_uri permanent;
}
Вы можете заменить $scheme
на https
, если хотите все время перенаправлять на HTTPS, чтобы получить такое же поведение, как в Apache.