Здравствуйте, подскажите пожалуйста, в чем может быть проблема неправильного перенаправления на своем Web сервере работающем на Nginx 1.22.1 + Php-Fm 8.2 (Server API: FPM/FastCGI) А на хостинге работающем на: nginх + apache + fastCCGI (Server API: CGI/FastCGI) работает все нормально
В чем конкретно проблема: Например, в панели управления администратором (именно там эта проблема возникает) при нажатии на кнопку «Сохранить» или «Редактировать» осуществляется POST запрос по кнопку Submit, пользователь должен оставаться на этой же странице, но его перекидывает на главную страницу сайта с параметрами, идущими после знака вопроса в адресной строке.
То есть, например, я нахожусь в панели администратора по адресу
https://site.ru/admin/index.php?controller=settings
Редактирую какую-то информацию в полях и нажимаю кнопку «Сохранить» я должен остаться на этой же странице
https://site.ru/admin/index.php?controller=settings
Так и происходит, если сервер нормально настроен, то есть это нормально работает на хостинге: nginх + apache + fastCCGI (Server API: CGI/FastCGI)
Я установил Web сервер на свой компьютер, у меня работает Nginx 1.22.1 + Php-Fm 8.2 (Server API: FPM/FastCGI)
И я скопировав сайт на свой вебсервер, ну и конечно же настроив конфигурационный файл nginx по советам разработчиков этого движка сайта (хотя может они и неправильно советы давали) получил проблему с неправильным редиректом на главную страницу сайта с параметрами которые были в адресной строке, которые были у меня в панели администратора.
То есть при нажатии на кнопку «Редактировать» или «Сохранить происходит перенаправление с адреса:
https://site.ru/admin/index.php?controller=settings
на
https://site.ru/?controller=settings
В конфигурационрный Nginx файл, отвечающий за каталог /admin добавлен только этот код, ну и часть кода относящаяся к настройке FastCGI:
Код:
location = / {
try_files $uri /index.php?$args;
}
location = /admin/ {
try_files $uri /admin/index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT /var/www/site.ru/;
fastcgi_param SCRIPT_FILENAME /var/www/site.ru$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /var/www/site.ru$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param HTTPS on;
fastcgi_intercept_errors on;
}
Но либо эта инструкция работает неправильно, либо вообще что-то неправильно указано в настройках Php Подскажите в чем может быть проблема, Может кто то с таким сталкивался?
Ошибок в логах (Сделал логирование POST и логирование правил Rewrite) Nginx никаких нет
Вот прикрепил скриншот из панели разработчика Веб Браузера, в которой видна разница перенаправления работающего на нормально настроенном севере и на моём.
Нормально работающий сайт (при нажатии на кнопку сохранить пользователь остается на той же странице)
Файл с Post запросом:
Заголовки POST запроса:
Файл с Get запросом:
Заголовки Get запроса:
Хреново работащий сайт (при нажатии на кнопку происходит перенаправление на главную страницу)
Файл с Post запросом
И заголовки POST запроса:
Файл с Get запросом
И Заголовки с Get запросом
Проблема врядли в самих скриптах сайта, здесь что то не так с настройками Nginx либо PHP Или все таки лучше поставить ещё Apache на сервер?