Моя текущая конфигурация перезаписывает все страницы 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
Термин был перемещен, поэтому он больше не является последним параметром и больше не содержит строку запроса. Видеть этот документ для подробностей.