Hola que tal todos tengo un problema con las url amigables de mi sitio quiero cambiar esto:
equipo.php?recordId=1
por
/serie/modelo/nombre
es mis href uso este codigo
"equipo.php?recordId=<?php echo $row_Equipos['id']; ?>"
luego en equipo.php obtengo la variable mediante un get y cargo la base de datos.
en el htacces entre y coloco esto
Options +FollowSymLinks
RewriteEngine on
#RewriteRule ^(.*)$ equipo.php?recordId=$1
estoy tratando de probar si funciona pero a pesar de poner el nombre de la web/1 por ejemplo no me cargan los datos del equipo. Siu me pueden guiar muy agradecido no tengo mucha idea de como hacer esto.
Hola, pues lo que necesitas es que un archivo te controle todo lo que recibes por la URL.
Yo en mi archivo HTACCESS tengo:
RewriteRule ^.*$ ./index.php
Con lo cual todo lo procesa el index.php.
El cual tiene algo similar a:
$params = explode("/",$_SERVER['REQUEST_URI']);
switch($params[1]) {
case "serie":
$modelo= $params[2];
$nombre= $params[3];
break;
....
Posteriormente cargo los datos relacionados que me estan solicitando en el URL
Obviamente tiene que validar que los parámetros existan y sean validos, ademas si los vas a usar para realizar consultas SQL, hay que sanizitarlos para evitar que te inyecten consultas
gracias bro por tu respuesta. ya he logrado cambiar los links ahora me quedan asi
serie/serie-producto/modelo/6
quisiera que no apareciera el id despues del / osea quitar el 6 alguna idea?
este es mi href
<a href="serie/<?php echo amigables($row_Modelos['nombre']);?>/<?php echo amigables($row_Equipos['modelo']);?>/<?php echo $row_Equipos['id']; ?>"><img src="images/equipos/<?php echo $row_Equipos['img']; ?>" alt=""></a>
y aqui el codigo del htacces
RewriteEngine on
RewriteRule ^serie/(.*)/(.*)/(\w+)/?$ equipo.php?nmodelo=$1&modelo=$2&recordId=$3
y aqui les dejo la funcion que uso
function amigables($url) {
// Tranformamos todo a minusculas
$url = strtolower($url);
//Rememplazamos caracteres especiales latinos
$find = array('á', 'é', 'í', 'ó', 'ú', 'ñ');
$repl = array('a', 'e', 'i', 'o', 'u', 'n');
$url = str_replace ($find, $repl, $url);
// Añaadimos los guiones
$find = array(' ', '&', '\r\n', '\n', '+');
$url = str_replace ($find, '-', $url);
// Eliminamos y Reemplazamos demás caracteres especiales
$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
$repl = array('', '-', '');
$url = preg_replace ($find, $repl, $url);
return $url;
}