Я пытаюсь запустить приложение PHP с помощью Nginx. Перезапись URL-адресов работает правильно, однако строки запроса не передаются в файлы PHP. Я что-то делаю не так в приведенной ниже конфигурации? Буду признателен за любую помощь!
nginx-site.conf:
server {
root /var/www/html;
include /etc/nginx/default.d/.conf;
index index.php index.html index.htm;
client_max_body_size 30m;
server_tokens off;
location / {
index index.html index.htm index.php;
try_files $uri $uri/ @extensionless-php;
}
location ~* .(?:ico|css|js|gif|jpe?g|png|svg|woff)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
}
location ~ \.php$ {
fastcgi_param HTTP_PROXY "";
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location @extensionless-php {
if ( -f $document_root$uri.php ) {
rewrite ^ $uri.php last;
}
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
}
location ~* /includes/(.+)\.php$ {
deny all;
}
}
Вместо того:
location / {
index index.html index.htm index.php;
try_files $uri $uri/ @extensionless-php;
}
Я хотел бы использовать:
location / {
index index.html index.htm index.php;
try_files $uri $uri.php =404;
}
Если аргументы запроса не работают с этим, попробуйте:
try_files $uri $uri.php$is_args$args =404;
В location @extensionless-php
также следует удалить.
Собственно, это была моя ошибка. Я увидел, что мое решение уже работает должным образом. Вся строка запроса успешно передана.