Chiedo assistenza su pretty url e .htaccess, per la questione redirect

Nello spazio web del mio cliente devo mettere il mio template avanzato Yii 2 in

/www, la quale NON è la webroot, la webroot è ‘/’, ma non posso modificarla per una lunga serie di ragioni stupide, inoltre essendo su uno shared host possso solo d’accordo col cliente, agire sull’.htaccess a livello radice.

Praticamente per avviare il sito invece che usare


http://www.domain.tld/ 

sono costretto ad usare


http://www.domain.tld/www/frontend/web/

Cos’ho fatto allora?

  1. Ho messo nella webroot questo .htacccess



Options -Indexes


<IfModule mod_rewrite.c> 

	RewriteEngine on

	

	RewriteCond %{REQUEST_URI} !^public

	RewriteRule ^(.*)$ 	/www/frontend/web/$1 [L]


</IfModule>


# Deny accessing below extensions

<Files ~ "(.json|.lock|.git)">

Order allow,deny

Deny from all

</Files>


# Deny accessing dot files

RewriteRule (^\.|/\.) - [F]



  1. Ho messo in /www/frontend/web quest’altro .htaccess



Options +FollowSymLinks

IndexIgnore */*


RewriteEngine on


# if a directory or a file exists, use it directly

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d


# otherwise forward it to index.php

RewriteRule . index.php



  1. ho configurato l’urlManager per i pretty url in /www/frontend/config/main.php



        'urlManager' => [

            'enablePrettyUrl' => true,

            'showScriptName' => false,

        ]



Risultato

L’accesso tramite http://www.domain.tld ora funziona

Il problema è che i link, anche se ‘carini’, sono tutti del tipo




http://www.domain.tld/www/frontend/web/site/about



Cosa manca per ‘nascondere’ completamente la parte ‘/www/frontend/web’ ?