Получение 500 внутренней ошибки по правилу перенаправления псевдонима в nginx - PullRequest
1 голос
/ 04 октября 2019

Я новичок на сервере nginx. Я застреваю в перенаправлении URL. У меня есть следующие строки в файле по умолчанию.

server {
    listen 80;
    root /home/ubuntu/web/server/current/public;
    index index.php index.html index.htm index.nginx-debian.html;
    server_name _;

    error_log /home/ubuntu/web/error.log info;


   location / {
    # try_files $uri $uri/ /index.php?$query_string;
    # try_files $uri $uri/ =404;
   }

   rewrite ^/web/(.*) /web/;
     location /web/ {
     alias /home/ubuntu/web/client/web/;
     # try_files $uri $uri/ index.html;
   }

    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }

    location ~ /\.ht {
            deny all;
    }
}

то, что я ожидаю из правила переписывания выше, - все URL, такие как - http://example.com/web/login, http://exmpale.com/web/dashboard будут перенаправлены в / home / ubuntu/ web / client / web / и страница по умолчанию для обращения - файл index.html.

Когда я открываю файл журнала ошибок, я обнаружил ошибку, например -

переписать или внутреннююцикл перенаправления при внутреннем перенаправлении на «/web/index.php», клиент: ip_address, сервер: _, запрос: «GET / web / HTTP / 1.1», хост: «ipaddress»

Чтоя здесь не так делаю.

1 Ответ

0 голосов
/ 15 октября 2019

Ответ за кредит отправляется @RichardSmith, он предоставил возможную ошибку, которая в правильном направлении. Я выяснил свою ошибку в правиле перезаписи nginx.

rewrite ^/web/(.*) /web/;
location /web/ {
    alias /home/ubuntu/web/client/web/;
    # try_files $uri $uri/ index.html;
} 

Вместо вышеупомянутого я должен иметь следующее:

rewrite ^/web/(.*) web/;
location web/ {
    alias /home/ubuntu/web/client/web/;
    # try_files $uri $uri/ index.html;
} 

Сервер рассматривает путь как абсолютный всякий раз, когда / помещается перед сетью. Таким образом, оператор rewrite пытается перенаправить в резервный файл, который не существует по абсолютному пути. В конце концов, оператор rewrite делает бесконечный цикл.

...