В шаблоне Вы можете делать так:
{% if app.request.getHttpHost() == 'spb.site.ru' %}
по Санкт-Петербургу
{% else %}
по Москве
{% endif %}
Другой более удобный вариант это создать глобальные переменные в шаблонах. Для этого нужно положить в папку "src/App/EventSubscriber/" файл "CustomTwigFieldsSubscriber.php" с примерно таким содержанием:
<?php
namespace App\EventSubscriber;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
class CustomTwigFieldsSubscriber implements EventSubscriberInterface
{
protected $container;
public function __construct(ContainerInterface $container)
{
$this->container = $container;
}
public function onKernelRequest(RequestEvent $event)
{
$request = $event->getRequest();
$host = $request->getHttpHost();
$cityString = $host === 'spb.site.ru' ? 'по Санкт-Петербургу' : 'по Москве';
/** @var \Twig\Environment $twig */
$twig = $this->container->get('twig');
$twig->addGlobal('cityString', $cityString);// Добавляем глобальную переменную в шаблон
}
public static function getSubscribedEvents()
{
return [
KernelEvents::REQUEST => [['onKernelRequest', 10]]
];
}
}
Этот подписчик автоматически будет использоваться после очистки кэша сайта. Тогда в любом шаблоне будет доступна переменная {{ cityString }}, которая будет выводить нужную строку.
Как назначить несколько доменов одному сайту Вы наверно и так знаете.