nginx перезапись вызывая цикл - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь создать постоянное переписывание. Я хочу, чтобы все трафик c от mysite.com/en/project-name до go до mysite.com/en/projects/project-name. Я придумал это регулярное выражение, но по какой-то причине оно вызывает бесконечное l oop.

rewrite ^/(en|fr|es)/((?!info|projects).*)$ $1/projects/$2 permanent;

Весь блок сервера выглядит так:

server {

  server_name mysite.com www.mysite.com;

  location / {
      proxy_pass http://localhost:3001/;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $http_host;

      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";

     proxy_redirect off;
     proxy_read_timeout 240s;

     rewrite ^/(en|fr|es)/((?!info|projects).*)$ $1/projects/$2 permanent;
  }


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mysite.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mysite.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    if ($host = www.mysite.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = mysite.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


  listen 80;

  server_name mysite.com www.mysite.com;
    return 404; # managed by Certbot

}

Есть что-то, что я делаю неправильно, что вызывает l oop?

...