У меня настроен этот шаблон в моем routing.yml
:
/{customer}/{site}/content/{id}.{format}
Теперь я хочу опустить часть /{customer}/{site}
и переписать ее с помощью правила перезаписи.У Symfony уже есть .htaccess
с правилом перезаписи.Я изменил его на
RewriteRule ^(.*)$ app_dev.php/foo/bar/$1 [QSA,L]
Но когда я указываю своему браузеру на http://localhost/content/42.html
, я получаю это исключение:
No route found for "GET /content/42.html"
Я немного повозился и выяснил, почему возникает эта проблема: Symfony использует переменную _SERVER['REQUEST_URI']
для анализа запроса, но когда вы используете mod_rewrite, URL-адрес в этой переменной не является ожидаемым /foo/bar/content/42.html
, а content/42.html
.
. Я мог бы заменить app_dev.php
намой собственный и перезаписать REQUEST_URI
, но я не хочу взламывать Symfony.
Edit : удаление части /{customer}/{site}
из конфигурации маршрутизации не является решением, потому что яработая над приложением с несколькими клиентами и несколькими сайтами, и я хочу скрыть эти части через URL, чтобы я мог указать в своем браузере значение www.my-fancy-site.com
, и apache перезаписал этот URL-адрес на /foo/bar/content/42.html
.