Я пытаюсь настроить Piwigo для работы на Nginx, но у меня возникли некоторые проблемы со ссылками, которые должны содержать и index.php, например: foto.domain.net/index.php/category/3
Кажется простой задачей переписать /index/category/3 в /index.php/category/3, но что бы я ни писал в этих переписываниях, я заканчиваю с ошибкой 404 и никогда не меняющейся записью в журнале ошибок, которая выглядит так:
open() "/srv/http/foto/index/category/3" failed (2: No such file or directory), client: 94.242.246.23, server: ~^(?<prefix>www)?\.?(?<subdomain>[a-z]+)?\.domain\.net$, request: "GET /index/category/3 HTTP/1.1", host: "foto.domain.net", referrer: "https://foto.domain.net/"
Журнал ошибок выглядит так же, даже если я добавляю мусор в строку перезаписи, например:
rewrite ^/index((/|$).*)$ /JUNK_index.php$1 last;
Так что часть перезаписи как-то ошибочна, но я не могу понять...
server {
listen 80;
server_name domain.net;
return 301 $scheme://www.domain.net$request_uri;
}
server {
listen 80;
server_name "~^(?<prefix>www)?\.?(?<subdomain>[a-z]+)?\.domain\.net$";
root /srv/http/$subdomain;
location @rewrites {
rewrite ^/picture((/|$).*)$ /picture.php$1 last;
rewrite ^/index((/|$).*)$ /index.php$1 last;
# The following is needed for batch operations which use i.php
rewrite ^/i((/|$).*)$ /i.php$1 last;
}
location /$subdomain {
index index.php index.html;
try_files $uri $uri.php $uri/ @rewrites;
}
location ~ ^(?<script_name>.+?\.php)(?<path_info>/.*)?$ {
try_files $script_name = 404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}