Перенаправления Nginx с обработкой php запроса
Помоги пожалуйста разобраться с перенаправлениями Nginx.
Раньше сервер висел на Apache, но решили попробовать перевести его на nginx + php-fpm, все переехало и встало идеально, но осталась одна не работающая функция, а именно Rewrite из htaccess.
Смысл действия: при обращении к определенной странице 'ДОМЕН/api/sk2/timeslots/ЦИФРА' сервер перенаправляет запрос в php файл, который возвращает данные JSON в зависимости от метода.
Как видите есть 3 метода:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^api/sk2/timeslots/([^/]*)$ /wp-content/plugins/sk2/api/index.php?method=timeslots&room=$1 [L]
RewriteRule ^api/sk2/book/([^/]*)/?(.*)$ /wp-content/plugins/sk2/api/index.php?method=book&room=$1$2 [L,R,NE,QSA]
RewriteRule ^api/sk2/cancel/([^/]*)/([^/]*)$ /wp-content/plugins/sk2/api/index.php?method=cancel&id=$1&hash=$2 [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Вопрос, как этому же научить Nginx, простое использования автоматических конверторов кода не помогает, так как фактически сервер возвращает не полученные данные а страницу index.php и предлагает ее скачать.
Ответы (1 шт):
Какой конвертер вы пытались использовать? Пробуйте с этим, результат корректный для вашей ситуации:
server {
server_name example.com;
rewrite ^/api/sk2/timeslots/([^/]*)$ /wp-content/plugins/sk2/api/index.php?method=timeslots&room=$1 last;
rewrite ^/api/sk2/book/([^/]*)/?(.*)$ /wp-content/plugins/sk2/api/index.php?method=book&room=$1$2 last;
rewrite ^/api/sk2/cancel/([^/]*)/([^/]*)$ /wp-content/plugins/sk2/api/index.php?method=cancel&id=$1&hash=$2 last;
index index.php;
location {
try_files $uri $uri/ /index.php$is_args$args;
}
...
}