у меня есть приложение Symfony 5 в domain.tld с этой базовой конфигурацией nginx:
карта "$http_cloudfront_forwarded_proto:$http_x_forwarded_proto" $cloudfront_proto {
по умолчанию "http";
"~https" "https";
}
сервер {
имя_сервера домен.tld;
слушать 80 отставание=65535;
корень /var/www/project/public;
client_max_body_size 500M;
место расположения / {
# попытаться передать файл напрямую, вернуться к index.php
try_files $uri /index.php$is_args$args;
}
# опционально отключите откат к PHP-скрипту для каталогов активов;
# nginx вернет ошибку 404, если файлы не будут найдены, вместо передачи
# запрос к Symfony (улучшает производительность, но страница 404 Symfony не отображается)
# местоположение /комплекты {
# try_files $uri =404;
# }
расположение ~ ^/index\.php(/|$) {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
включить fastcgi_params;
# опционально установить значение переменных окружения, используемых в приложении
# fastcgi_param APP_ENV prod;
# fastcgi_param APP_SECRET <идентификатор секрета приложения>;
# fastcgi_param DATABASE_URL "mysql://db_user:db_pass@host:3306/db_name";
fastcgi_param HTTP_X_FORWARDED_PROTO $cloudfront_proto;
# Когда вы используете символические ссылки, чтобы связать корень документа с
# текущая версия вашего приложения, вы должны передать реальную
# путь к приложению вместо пути к симлинку на PHP
# ФПМ.
# В противном случае OPcache PHP может неправильно обнаружить изменения в
# ваши файлы PHP (см. https://github.com/zendtech/ZendOptimizerPlus/issues/126
# для дополнительной информации).
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
# Запрещает URI, включающие фронт-контроллер. Это будет 404:
# http://domain.tld/index.php/some-path
# Удалите внутреннюю директиву, чтобы разрешить такие URI
внутренний;
}
# вернуть 404 для всех остальных файлов php, не соответствующих фронт-контроллеру
# это предотвращает доступ к другим файлам php, которые вы не хотите открывать.
расположение ~ \.php$ {
вернуть 404;
}
error_log /var/log/nginx/project_error.log;
журнал_доступа /var/log/nginx/project_access.log;
}
Мой вариант использования:
У меня есть несколько маршрутов:
/сайт/{URL-адрес сайта}
/сайт/{URL-адрес сайта}/*
/сайт/{URL-адрес сайта}/*/*
...
нравиться :
Я хочу получить доступ к этим маршрутам с URL-адресом, например
Я не хочу перенаправления, но правило перезаписи для всех URL-адресов начинается с префикса. custom.css работает.
Я пытаюсь добавить новый блок сервера с помощью этого добавления:
сервер {
префикс имени_сервера.*;
корень /var/www/project/public;
слушать 80;
client_max_body_size 100M;
местоположение = / {
переписать ^ /index.php/site/$host break;
}
...
Но это совсем не сработало...
Вы можете мне помочь ? :D
Спасибо