Я запускаю приложение Angular, отрендеренное из контроллера Symfony. Мое приложение symfony основано на http: // localhost / portal
и имеет маршрут на http: // localhost / portal / shop /
(который отображает приложение Angular).
Моя текущая конфигурация nginx хорошо работает для этого URL.
Когда я достигну http: //localhost/portal/shop/.*
, я хочу, чтобы nginx запускал приложение Symfony на контроллере http: // localhost / portal / shop /
, а остальная часть uri будет обрабатываться с помощью маршрутизации Angular.
Мои знания nginx ограничены. Это возможно ? Если да, то как этого добиться?
Мое текущее местоположение для обработки / portal / shop
:
location /portal {
root $projectroot/portal/web;
rewrite ^/portal/?(.*)$ /app_dev.php/$1 break;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $projectroot/portal/web/$fastcgi_script_name;
fastcgi_param HTTPS off;
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
}
Сообщите мне, если вам понадобится больше моего файла конфигурации. Он довольно большой, так как он также обрабатывает раздел api ;-)
Спасибо за вашу помощь!
Нашел решение без nginx. В какой-то момент мой разум может быть заблокирован.
Основываясь на решении, представленном в , этот ответ о переполнении стека я сделал следующее:
class ShopController extends Controller {
/**
* @Route("/shop/{angularRoute}", name="shop", requirements={"angularRoute": ".*"})
*/
public function __invoke() {
return $this->render('shop.html');
}
}