# Walk The Line — V16.8 — Routage multi-site / domaines

## Objectif

Durcir le routage public avant mise en production et préparer proprement l'arrivée d'autres projets artistiques sur leurs propres domaines.

## Modifications

- Le service `PublicArtisticProjectResolver` expose désormais la résolution du domaine lui-même et la recherche du domaine principal d'un projet.
- La configuration `Site public` d'un projet accepte :
  - un domaine principal ;
  - un namespace/template public ;
  - zéro ou plusieurs domaines secondaires / alias, un par ligne ;
  - l'activation explicite du site public.
- Les domaines sont normalisés et leur unicité entre projets est vérifiée avant modification.
- Les alias supprimés dans le formulaire sont supprimés du routage du projet.
- Un projet ne peut pas rester activé publiquement sans domaine principal et sans template public.
- Nouveau `PublicCanonicalHostSubscriber` : un alias public redirige en `301` vers le domaine principal, en conservant chemin et query string.
- Aucun redirect canonique n'est appliqué sur `localhost` / `127.0.0.1`, ni sur le back-office / profiler.

## Base de données

Aucune migration Doctrine. La table `artistic_project_domain` existait déjà et supportait déjà domaine principal / alias / activation.

## Après installation

```bash
docker compose exec web php bin/console cache:clear
docker compose exec web php bin/console doctrine:schema:validate
docker compose exec web php bin/console doctrine:schema:update --dump-sql
```

Le dernier `dump-sql` doit rester vide.

## Test de production conseillé

Configurer par exemple :

- domaine principal : `www.exemple.fr`
- alias : `exemple.fr`

Puis vérifier que :

`https://exemple.fr/contact?subject=booking`

redirige en 301 vers :

`https://www.exemple.fr/contact?subject=booking`
