Моя текущая конфигурация перезаписывает все страницы php на /index.php?$query_string
, мне нужно, чтобы это работало для конкретный путь, но при использовании для этого блока местоположения, как только путь был переписан, он больше не соответствует. Есть ли способ перенаправить запрос на fpm и переписать URI в том же блоке местоположения без перенаправления? Или альтернативу, которая выполнит то, что я хочу?
Вот мой конкретный код:
location /civicrm/group {
location ~ \.php$ {
fastcgi_send_timeout 0;
fastcgi_read_timeout 0;
include snippets/fastcgi-common.conf;
fastcgi_param HTTPS 'on';
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
try_files $uri @drupal;
}
location ~ \.php$ {
include snippets/fastcgi-modify.conf;
include snippets/fastcgi-common.conf;
fastcgi_param HTTPS 'on';
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
location @drupal {
try_files $uri /index.php?$query_string;
}
Проблема в том, что я теряю информацию об исходном базовом пути и больше не могу соответствовать исходному местоположению, например:
/ civicrm / group? Reset = 1
/ some / path
, здесь я бы хотел изменить
настройки для php-fpm
. /index.php?$query_string
/ some / path? Reset = 1
не соответствует (проблема) Если нет никаких статических файлов под этим путем, Вы могли бы отправить все запросы непосредственно к index.php
с:
location /civicrm/group {
try_files /index.php =404;
fastcgi_send_timeout 0;
fastcgi_read_timeout 0;
include snippets/fastcgi-common.conf;
fastcgi_param HTTPS 'on';
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
Уведомление, что эти /index.php
термин был перемещен так, чтобы это больше не было последним параметром и больше не содержало строку запроса. См. этот документ для деталей.