Я пытаюсь настроить свой 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;
}
}
Ты можешь использовать 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.
Других решений пока нет …