Le but ici est d’héberger une appli Synfony dans un sous répertoire et non pas a la racine du site web.
Imaginons que l'on veuille acceder a notre appli via le répértoire 'sous_repertoire
' comme ceci :
http://mon_site.com/sous_repertoire/xxxx/xxxx/
La partie /xxxx/xxxx
devenant la route a retourner au routeur Symfony
a placer dans le répertoire de l'application.
Ce .htaccess
renvois tout ce qui est demandé au niveau de ce répértoire vers le répértoire public
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*) public/index.php/$1 [L] </IfModule>
A etudier…
http://mon_site.com/sous_repertoire/xxxx/xxxx/
/xxxx/xxxx
devenant la route a retourner au routeur Symfony
Dans le fichier .env
ou .env.local
ajouter la variable globale
BASE_HOST="/sous_repertoire" BASE_URL="http://mon_site.com/sous_repertoire/public" #pour les Assets
BASE_URL
est vide ou est une adresse mal formée, alors on obtient une erreur
Pour transformer la variable globale en variable interpretable par le routeur dans le fichier annotations.yaml
parameters:
app.base_host: '%env(BASE_HOST)%'
controllers: resource: ../../src/Controller/ type: annotation prefix: '%app.base_host%' kernel: resource: ../../src/Kernel.php type: annotation prefix: '%app.base_host%'
assets: base_urls: ['%env(BASE_URL)%']
base_path
qui me paraissait plus approprié, mais cela n'a pas fonctionné…