Nginx - Перенаправление для удаления index.php из пути

Я пытаюсь развернуть веб-приложение для создания служб REST. Приложение создано с использованием PHP, а также веб-сервера BYO и программного обеспечения базы данных. Я использую Nginx и MySQL (MariaDB). Мне удалось развернуть его, используя следующую конфигурацию Nginx:

server {
    listen 80;
    listen [::]:80;

    root /var/www/fusio;
    index index.php index.html index.htm;

    server_name localhost;

    location / { 
       try_files $uri $uri/ =404;
    }

    location ~ ^.+.php {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;

        set $path_info $fastcgi_path_info;
        fastcgi_param PATH_INFO $path_info;

        try_files $fastcgi_script_name =404;

        include         fastcgi_params;
        fastcgi_pass    unix:/run/php/php7.3-fpm.sock;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_index   index.php;
    }

}

Когда я развертываю новые конечные точки в приложении, они развертываются по адресу http: //localhost/local/index.php/my_url . Я бы хотел, чтобы они были развернуты по адресу http: // localhost / my_url . Разработчик приложения, знакомый с Apache, предложил включить mod_rewrite , что, как я понимаю, фактически является возможностью перенаправления.

Я хочу знать, как я могу сделать такое же перенаправление в Nginx без нарушения конфигурации fastcgi, которую я установил. Возможно ли это, и если да, то как? Существующие rewrite , которые я пробовал, такие как rewrite ^ / index.php /(.*) / $ 1 постоянный; и rewrite ^ (. *) $ / Index .php , похоже, не помогает.

Заранее спасибо

0
задан 30 March 2020 в 04:23
1 ответ

Ричард Смит ответил на мой вопрос выше; замена части = 404; в строке try_files в моей директиве location / на (эквивалент) /local/index.php$uri ; позволяет запросам php продолжать работу, как если бы они обращались к соответствующему index.php, но не отображая их в адресе и не влияя на способность приложения запускать свои внутренние сценарии. Спасибо, Ричард!

0
ответ дан 1 April 2020 в 00:07

Теги

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