petete2008 Posted May 1, 2014 Share Posted May 1, 2014 (edited) Hola : He decidio que las url amigables de mis productos estén al final y no al final como vienen por defecto en prestashop 1.4.x. El motivo es para facilitar la lectura de la url al usuario porque de cara al buscador de google entiendo que es indiferente. Por ejemplo, Cambiar : http://www.prueba.es/categoria/1-ipod-nano.html Por http://www.prueba.es/categoria/ipod-nano-1.html He comenzado creando una class override de Link.php (hasta aquí todo bien, los productos llevan el enlace que deseo) public function getProductLink($id_product, $alias = null, $category = null, $ean13 = null, $id_lang = null) { global $cookie; if (is_object($id_product)) { $link = ''; if ($this->allow == 1) { $link .= _PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)$id_lang); if (isset($id_product->category) && !empty($id_product->category) && $id_product->category != 'home') $link .= $id_product->category.'/'; // LINEA ORIGINAL => $link .= (int)$id_product->id.'-'.(is_array($id_product->link_rewrite) ? $id_product->link_rewrite[(int)$cookie->id_lang] : $id_product->link_rewrite); $link .= (is_array($id_product->link_rewrite) ? $id_product->link_rewrite[(int)$cookie->id_lang] : $id_product->link_rewrite).'-'.(int)$id_product->id; if ($id_product->ean13) $link .= '-'.$id_product->ean13; $link .= '.html'; } else $link .= _PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)$id_product->id; return $link; } elseif ($alias) { $link = ''; if ($this->allow == 1) { $link .= _PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)$id_lang); if ($category && $category != 'home') $link .= $category.'/'; // LINEA ORIGINAL => $link .= (int)$id_product.'-'.$alias; $link .= $alias.'-'.(int)$id_product; if ($ean13) $link .= '-'.$ean13; $link .= '.html'; } else $link .= _PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)$id_product; return $link; } else return _PS_BASE_URL_.__PS_BASE_URI__.'product.php?id_product='.(int)$id_product; } Y luego que es donde me encuentro actualmente y no he podido solucionarlo en la creación de las reglas dentro del .htaccess RewriteRule ^[a-zA-Z0-9-]*\-([0-9]+).html /prueba/product.php?id_product=$1 [QSA,L]# RewriteRule ^[a-zA-Z0-9-]*/([0-9]+)\-[a-zA-Z0-9-]*\.html /prueba/product.php?id_product=$1 [QSA,L][code] El problema es que al entrar en un producto me dice 'pagina no disponible'. alguna idea?Gracias Edited May 1, 2014 by petete2008 (see edit history) Link to comment Share on other sites More sharing options...
petete2008 Posted May 1, 2014 Author Share Posted May 1, 2014 (edited) me respondo a mi mismo. Era muy fácil, es lo que pasa cuando uno está muchas horas delante del pc, jajaja. solucion RewriteRule ^[a-zA-Z0-9-]*/[a-zA-Z0-9-]*\-([0-9]+)\.html /prueba/product.php?id_product=$1 [QSA,L] Edited May 1, 2014 by petete2008 (see edit history) Link to comment Share on other sites More sharing options...
Prestashopy Posted August 17, 2015 Share Posted August 17, 2015 Ahora ya no es necesario modificar el código puedes modificar la regla de la URL desde el backoffice. Ir al menu: PREFERENCIAS --> SEO+URLs --> Formato de los enlaces: Ruta a los productos: {category:/}{rewrite}{-:ean13}-{id}.html Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now