Конфигурация nginx без косой черты - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь настроить свой nginx. Я хочу, чтобы он обслуживал php-файл: dir/index.php, но делаю так, чтобы я мог получить к нему доступ localhost/dir (без косой черты), не вызывая nginx 301 redirect. Я попробовал все решения, найденные здесь, однако не удалось. Не могли бы вы объяснить, как я могу достичь этой цели? Это мой конфиг:

server {
access_log /var/log/nginx/access_log combined;
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/mock-api-server.git;
index index.php;

location ~* \.php$ {
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
  }
}

1 Ответ

0 голосов
/ 05 ноября 2018

Вы можете использовать try_files для добавления /index.php в конец URI. Это должен быть последний параметр оператора try_files, поскольку новый URI обрабатывается в другом месте. Подробнее см. в этом документе .

Например:

location / {
    try_files $uri $uri/index.php?$args;
}
location ~* \.php$ {
    try_files $uri =404;
    ...
}

Второе утверждение try_files состоит в том, чтобы не передавать неуправляемые запросы в PHP . Если новый URI не соответствует реальному файлу PHP, возвращается ответ 404.

...