Nascondere il nome del controller di default

Ciao ragazzi, è da un po’ che non bazzico da queste parti, mi mancavate! :D

Ho una domanda per voi.

Ho un controller con tutti i metodi delle varie pagine del menù, si chiama SiteController.

SiteController

-actionIndex

-actionLogin

-actionAbout

e così via.

Ho giù nascosto tramite htaccess index.php, ma vorrei evitare di scrivere www.nome.it/site/about, invece vorrei poter scrivere www.nome.it/about

C’è un modo per occultare site ed usarlo come controller predefinito? :S

Grazie!

Mi sembra semplice,

vai in "config/main.php"

e scommenta il seguente blocco:


		'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>',

scusa ho frainteso …

butta il mio vecchi post…

Devi usare delle rules per ogni pagina:




'urlManager'=>array(

         'urlFormat'=>'path',

          'rules'=>array(

                 'login'=>'site/login',

                 'about'=>'site/about',

                 'indes'=>'site/indes',

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

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

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




zaccaria non è più pratico avere un espressione regolare a quel punto? o dici che da un punto di vista della memoria non conviene per una cosa del genere?

Puoi provare qualcosa tipo:


'urlManager'=>array(

         'urlFormat'=>'path',

          'rules'=>array(

                 '<action:(login|about|index)>'=>'site/<action>',

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

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

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



Credo che funzioni addirittura meglio della formulazione precedente, perche’ si tratta di una regola sola.

P.S:scusate il ritardo, mi sono preso una vacanza…