Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/05/2009, 12:42
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: funcion rewrite?

No es tan recomendable tener la extension html seguida del diagonales y mas parametros, la estructura que tengo yo es: sitio.com/modulo/elemento-idNUMERO, en tu caso seria: sitio.com/noticias/titulo-noticia-n1/ o sitio.com/noticias/titulo-noticia-n1.html

En cada modulo que tengas crea primero la URL base, por ejemplo en noticias.php tendrias:
Código php:
Ver original
  1. $url_base = '/noticias/'; // agrega http://www.sitio.com al principio, si lo crees necesario
  2.  
  3. // Aqui creas el link para ver las noticias
  4. $id_noticia = 1;
  5. $titulo_noticia = 'Este es el título de la noticia';
  6. $link_noticia = $url_base . friendly($titulo_noticia) . '-n' . $id_noticia . '.html';
  7.  
  8.  
  9. // La función friendly:
  10. function friendly($str) {
  11.     // quitar entidades html
  12.     $search = array('<', '>', '"', '&');
  13.     $str = str_replace($search, '', $str);
  14.     $str = preg_replace('/&(?!#[0-9]+;)/s', '', $str);
  15.  
  16.     // quitar preposiciones y articulos, agrega o quita las que creas convenientes
  17.     $search = array(' a ', ' ante ', ' de ', ' para ', ' con ', ' contra ', ' por ', ' entre ', ' en ', ' sobre ', ' bajo ', ' y ', ' e ', ' o ', ' u ', ' este ',  'aquel ', ' la ', ' el ', ' lo ', ' las ', ' los ');
  18.     $str = str_replace($search, ' ', strtolower($str));
  19.  
  20.     // Convertir acentos, dieresis,  tildes y guiones
  21.     $search = array('Á', 'É', 'Í', 'Ó', 'Ú', 'á', 'é', 'í', 'ó', 'ú', 'Ü', 'ü', 'Ñ', 'ñ', '_', '-');
  22.     $replace = array('a', 'e', 'i', 'o', 'u', 'a', 'e', 'i', 'o', 'u', 'u', 'u', 'n', 'n', ' ', ' ');
  23.     $str = str_replace($search, $replace, strtolower(trim($str)));
  24.  
  25.     // Eliminar caracteres no alfanumericos
  26.     $str = preg_replace("/[^a-zA-Z0-9\s]/", '', $str);
  27.     // Cambiar espacios multiples por 1 solo espacio
  28.     $str = preg_replace('/\s\s+/', ' ', $str);
  29.     // Cambiar espacios por guiones (preferiblemente medios, no bajos)
  30.     $str = str_replace(' ', '-', $str);
  31.     return $str;
  32. }
__________________
- León, Guanajuato
- GV-Foto

Última edición por Triby; 07/05/2009 a las 12:52