@Elder12

Как правильно настроить nginx?

Доброго времени суток.
Проблема в том, что nginx пишет 404 если я прохожу по адресу:
...web/app_dev.php/login.json (это api) и др. где есть .*\.json

Файл конфигурации выглядит так
server {
    listen       80;
        server_name  server_domain_name_or_IP;

    # note that these lines are originally from the "location /" block
    root   /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /var/www/html;
    }

    location ~ ^(.+?\.php)$ { #возможно дело в этом регулярном выражение, но я разные пробовал варианты, не помогло.
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
        include fastcgi_params;
    }
}

Так происходит, если после php файла идёт json, если заходить на отдельный файл json, то он работает.
ОС Centos7
В чём может быть проблема?
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ответы на вопрос 1
Как минимум, в регулярном выражении ошибка.
Я не большой знаток regexp, но попробуйте вот такой вариант
^.+?\.php(/.+\.json)*$

Будет обрабатывать и web/app_dev.php и web/app_dev.php/login.json
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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