Far Sparire Index.php

Salve a tutti,

sono nuovo del forum e spero di trovarmi bene sia con voi che con il framework in questione :)

volevo chiedervi se qualcuno ha impostato l’url seo friendly togliendo anche index.php definitivamente dal percorso degli indirizzi.

non so se ho visto la guida sbagliata (ho dato un’occhiata su quella di html.it) e sinceramente non capisco dove sbaglio, nell’htaccess metto il seguente codice:

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

mentre aggiungo i "…" nei percorsi che trovo dentro il file protected\view\layouts\main.php

per testare infine, faccio localhost\nomesito\gii e ovviamente mi fa una pernacchia (404 not found)

ho provato a dare un’occhiata sul forum prima di scrivere, ma purtroppo sono 41 pagine di forum, e la ricerca fa abbastanza pena

a parte gii, gli altri url del sito vanno?

La guida ufficiale (http://www.yiiframework.com/doc/guide/1.1/en/topics.url#hiding-x-23x) dice di fare così




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



e in piu

Aggiungo anche questo, dalla wiki: http://www.yiiframework.com/wiki/214/url-hide-index-php

si parla di verificare se un modulo php è attivo o meno…

grazie per la risposta celere…

ho creato al volo un m+c+v user,

con localhost\sito\index.php\user và

con localhost\sito\user pernacchia…

ho effettuato sia il tentativo della guida ufficiale, che quello del link wiki che hai postato (il secondo è brutto comq come metodo, esporta htaccess dalla cartella protected), ma in entrambi i casi non funziona.

ora provo a fare un pò di tentativi per vedere se ho capito male qualche passaggio

niente da fare, ho modificato l’htaccess, impostato lo showScriptName…

suppongo che il passaggio che mi manca sia più grossolano di quel che penso.

grazie realtebo, ora provo a guardare bene la guida ufficiale e vedere se mi son perso qualche passaggio precedente…

…nell’attesa che magari qualcuno che usa questo metodo mi sputa in un occhio e mi dice “ma è ovvio, l’errore è questo qua -> …” :lol:

Sto finendo le idee … girovagando in cerca di aiuti per te ho trovato un utente (http://www.yiiframework.com/forum/index.php/topic/34408-hiding-indexphp-problem/page__view__findpost__p__166324) che ha detto che non funzionava per via del formato file Mac invece che Linux, mi riferisco all’.htaccess

Prova anche questo, preso dal soorgente




* If your application is using path-format URLs with some customized URL rules, you may need to add

* the following URLs in your application configuration in order to access GiiModule:

* <pre>

* 'components'=>array(

*     'urlManager'=>array(

*         'urlFormat'=>'path',

*         'rules'=>array(

*             'gii'=>'gii',

*             'gii/<controller:\w+>'=>'gii/<controller>',

*             'gii/<controller:\w+>/<action:\w+>'=>'gii/<controller>/<action>',

*             ...other rules...

*         ),

*     )

* )

* </pre>



grazie per la costanza, io mi ero già arreso :D

faccio questi due tentativi e ti faccio sapere

Realtebo ho risolto !!

in sostanza, per chi fosse interessato, le modifiche sono queste:

config/main.php




'urlManager'=>array(

		'urlFormat'=>'path',

     		'rules'=>array(

                	'<controller:\w+>/<id:\d+>'=>'<controller>/view',

		       '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

			'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

			),

		),



e l’altra modifica è quella dell .htaccess




Options +FollowSymLinks

IndexIgnore */*

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php



l’errore che non si deve fare è quello di andare a modificare il file .htaccess che si trova all’interno della cartella protected.

Bisogna creare un secondo .htaccess, all’esterno della cartella protected (dove si trova la index.php e index-test.php del nostro sito, in sostanza), contenente questo codice.

felice che ti funzioni, ma lascia un .htaccess COMUNQUE dentro a protected con questo contenuto




deny from all



Sennò … che protected è ?

Fammi sapere se funziona ANCHE con questo file. Sarà utile a chi ripassa da qui in futuro.

funziona anche con questa aggiunta !

ok, allora modifica il precedente tuo post, e scrivi DOVE deve essere creato il file .htaccess, e cancella il fatto di spostare quello di protected.

Così poi ti metto un bel +, che avvisa gli utenti che quella è una buona soluzione

fatto