Problema Urls

Buenas, soy nuevo en esto y he decidido practicar con una web, esta tendrá categorías, subcategorías e items, bien, creo que puedo montar los requisitos poco a poco, pero el problema es que la url me queda de la siguiente manera:

www.miweb.com/category/categoriax

www.miweb.com/category/categoriax/subcategory/subcategoriax

www.miweb.com/category/categoriax/subcategory/subcategoriax/item/itemx

El resultado que quiero es :

www.miweb.com/categoriax

www.miweb.com/categoriax/subcategoriax

www.miweb.com/categoriax/subcategoriax/itemx

category, subcategory y item son parametros.

Decir que tengo pensado gestionarlo desde un solo controlador.

Sugerencias?

Gracias.

Edit: la pregunta es si se puede cambiar sin tocar el httacces.

Creo que aquí encontrarás la solución:

http://www.yiiframework.com/doc/guide/1.1/en/topics.url

Se trata de configurar las rules de UrlManager en protected/config/main.php a tu gusto:




array(

    ......

    'components'=>array(

        ......

        'urlManager'=>array(

            'urlFormat'=>'path',

            'rules'=>array(

                'pattern1'=>'route1',

                'pattern2'=>'route2',

                'pattern3'=>'route3',

            ),

        ),

    ),

);



Con algo del tipo:


'categoriax'=>'category/categoriax'

En ese link hay mucha información y ejemplos:


array(

    'posts'=>'post/list',

    'post/<id:\d+>'=>'post/read',

    'post/<year:\d{4}>/<title>'=>'post/read',

)

saludos

Jamon

Voy a desarrollar algo mas la pregunta, una vez recibido si que creo ser capaz de gestionarla, el problema es que estoy utilizando el formato que te da el menu horizontal por defecto:

No tengo el codigo ahora mismo pero es algo parecido a:

	&lt;?php &#036;this-&gt;widget('zii.widgets.CMenu',array(


		'items'=&gt;array(


			array('label'=&gt;'Home', 'url'=&gt;array('',array('category'=&gt;&#036;mivariable,'subcategory'=&gt;&#036;variable))),


		),


	)); ?&gt; 

Esto me da www.miweb.com/category/micategoria/subcategory/misubcategoria.

Lo que quiero es que no se muestren el como se llama los parámetros get, en este caso category, subcategory.

Las variables son dinámicas, al ser dinámicas tienen que ser variables get si o si.

para recibirlos y gestionarlos al controlador creo que me puedo apañar.

<category>/<subcategory> => ‘lo_que _interese’.

Gracias.

FIX: Vale, no estaba entendiendo bien el concepto, pero tienes razón, es muy simple con las url rules.

Alguien me puede explicar una duda,

He estado trabajando un poco en como quiero el diseño de las urls, y prácticamente ya lo tengo.


'urlManager'=>array(

			'urlFormat'=>'path',

                        'showScriptName'=>false,

			'rules'=>array(

                                /**************PAGINA PRINCIPAL***************/

                                '<category:\w+>/<subcategory:\w+>/<id:\w+>'=>'Web/item',

                                '<category:\w+>/<subcategory:\w+>'=>'Web/subcatego',

                                '<category:\w+>'=>'Web/catego',

                                '/'=>'Web/index',

                                /*************BACK END***************/

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

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

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

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

                               

			),

La duda viene en la parte de gestionarel admin-nombre


<?php $this->widget('zii.widgets.CMenu',array(

			'items'=>array(

				

				array('label'=>'About', 'url'=>array('Categorias/index')),

				

		)); ?>

Esto me escribe www.miweb.com/admin-nombre/categoria/index

Pero si pongo en las reglas url esto:

admin/<controller:\w+>/<action:\w+>’=>’<controller>/<action>’,

Esto me escribe www.miweb.com/admin/categoria/index , pero da error 404

El caso es que pasa una cosa curiosa, donde pone admin-nombre, si le llamo admin, hola o como quiera solo con una palabra No VA, da error 404, en cambio si pongo una palabra compuesta por -, espacio o lo que sea si, alguien tiene idea?