Topic: Seo-friendly URLS
una volta era già stato postato un tutorial simile... ma è andato perduto.
Ad ogni modo, avevo bisogno di fare in modo che gli indirizzi
http://localhost/cakephp/mkk_cms/index.php/items/view/5
diventassero qualcosa tipo
http://localhost/cakephp/mkk_cms/index.php/page/5:Lettore-FLV
il tutto è piuttosto semplice, anche se ho un errore e non capisco il motivo. Comunque, bisogna aggiungere una riga nel config/routes.php:
Router::connect('/page/*', array('controller' => 'items', 'action' => 'view'));e, nel controller che si occupa di visualizzare la pagina, aggiungere una cosa tipo:
@list($id, $url_suffix) = preg_split('/[:]/', $id, 2);
$lang = $this->Session->read('Config.language');
$titolo = $this->Item->find($conditions="Item.node_id=$id, $fields="Item.node_id, Item.Itemvalue", $order=null, $limit=null, $page=1, $recursive="-1");
$titolo['Item']['Itemvalue'] = str_replace(" ", "-", $titolo['Item']['Itemvalue']);
if ($url_suffix!==$titolo['Item']['Itemvalue']) //seo friendly urls
{
$this->redirect('/page/'.$titolo['Item']['node_id'].':'.$titolo['Item']['Itemvalue'], 301);
exit;
}et voilà!
l'unica cosa, a me i : inchiodavano il caricamento dello script, in sostanza questo:
id = 5:Lettore-FLV
me lo leggeva come se fosse semplicemente
id = Lettore-FLV
lo script non riusciva a prendere il 5 e mi si bloccava tutto. mettendo la virgola funziona correttamente... boh! suggerimenti?