symfony route Маршрут -- все адреса кроме (например кроме /api для SPA приложения) - requirements

Возможен такой подход для заворачивания всех машрутов, кроме тех что начинаются с какого-то слова (в пример ниже это api), на главный шаблон с помощью аннотаций:

namespace App\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Annotation\Route;

class DefaultController extends Controller
{
    /**
     * @Template("default/index.html.twig")
     * @Route("/{reactRouting}", name="index", requirements={"reactRouting"="^(?!api).+"}, defaults={"reactRouting": null})
     */
    public function index()
    {
        return [];
    }
}

Единственый момент в symfony 4.3, пришлось писать не

name="index"

а:

name="main"

(ранее это был маршрут для главной страницы) возможно потому что в config/packages/security.yaml была сконфигурирована именно секция:

main:
	anonymous: true
	guard:
		authenticators:
			- App\Security\LoginFormAuthenticator

(точнее не проверяли)

Источник: https://stackoverflow.com/a/49475504