Symfony su shared host: custom web root con htaccess

symfony

Certamente vi sarΓ  capitato di dover hostare il vostro progetto symfony su shared host, di cui non avete il controllo via ssh… dove quello che avete Γ¨ un account ftp easy! Come possiamo creare una custom web root? Come posso, cioΓ¨, passare dalla cartella web di symfony, alla root del sito ??

1. modifica il file .HTACCESS

Certo, la prima cosa che viene in mente Γ¨ l’htaccess, cosa scontata, ma non sufficente… “basta” un piccolo accorgimento… scovato nei meandri del forum di symfony… e il gioco Γ¨ fatto:

prima cosa modificamo l’ htaccess

[sourcecode language=”plain”]
<IfModule mod_rewrite.c>
RewriteEngine On

# we skip all files in /web
RewriteCond %{REQUEST_URI} ^/web/
RewriteRule .* – [L]

# we rewrite all other files with .something to /web
RewriteCond %{REQUEST_URI} \..+$
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule ^(.*)$ /web/$1 [L]

# we check if the .html version is in /web (caching)
RewriteRule ^$ /web/index.html [QSA]
RewriteRule ^([^.]+)$ /web/$1.html [QSA]
#####################################################

RewriteRule ^(.*)$ /web/index.php [QSA,L]

</IfModule>
[/sourcecode]

2. un ritocchino anche a index.php

seconda cosa… e qui c’Γ¨ la finezza… modifichiamo la pagina index.php nella cartella web, aggiungendo questa riga:

[php]

$_SERVER[‘SCRIPT_NAME’] = ‘/index.php’;

[/php]

Et voilΓ … il vostro redirect funzionerΓ  alla perfezione…

Buon lavoro con symfony!