Cita:
Iniciado por neodani Hola,
Tengo un problema con URL amigables.
Hasta hace poco, mis direcciones era del estilo
http://dominio.com/?page_id=45
Donde 45 era la pagina que quería mostrar. Esto lo he cambiado y ahora en lugar de salir así, me sale el titulo de la página
http://dominio.com/titulo-pagina
y en algunos casos
http://dominio.com/seccion/titulo-pagina
El problema que tengo es que antes trataba la URL y con GET miraba en que página me encontraba para mostrar o no un modulo determinado. Pero al cambiar la URL amigable el método ya no me funciona.
<?php if ($_GET['page_id'] != 45){ ?>
modulo
<? }?>
Alguien me puede echar una manita?
Muchas gracias
Debes indicarle al .htaccess como llegara tu variable, puedes usar
http://dominio.com/?page_id=45 http://dominio.com/seccion/titulo-pagina_45.html o bien sin extension.
en el .htaccess
Código PHP:
RewriteEngine on
Rewriterule (.*)_([0-9]+).html$ index.php?page_id=$1
Pero antes debes crear la url amigable en la web te paso una funcion que puedes usar al crearlas.
Código PHP:
// ---------- variables para convertir amigable ---------------- //
function saca($mensaje)
{
$mensaje = str_replace("%F1","n",$mensaje);
$mensaje = str_replace("%D1","N",$mensaje);
$mensaje = str_replace(".","-",$mensaje);
$mensaje = str_replace('/',"",$mensaje);
$mensaje = str_replace(" ","-",$mensaje);
$mensaje = str_replace("\\\\","\",$mensaje);
return strtolower($mensaje);
}
function elimina_ace($cadena){
$tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
$replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
return(strtr($cadena,$tofind,$replac));
}
// --------------------- fin amigables -------------------------------- //
En realidad hay muchas mas, pero yo uso esa y me ayuda mucho.
Dentro de los metatag puedes usar una base par indicar en que dominio se encuentra todo y asi evitar problemas de estilos.
<base href="http://www.tudominio.com/"/>
espero te sirva saludos