Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Generar url amigables desde url dinamicas

Hola que tal amigos del foro.
Hay un tema que he estado estudiando pero la verdad es que la informacion que hay (que es bastante) es muy difusa. Y son las famosas url amigables.
He tratado con un monton de codigo impresionante pero nada sucede, lo que estoy seguro es que en mi instalacion de xampp si esta activo el modulo para la reescritura de url.
Evidentemente la ides seria que no apareciera algo como esto:
https://www.dominio.com/agregar.php?cat=1

Sino algo como:
https://www.dominio.com/agregar-comentario

Espero que me puedan ayudar con el tema.
Saludos y muchas gracias amigos.
Editado
0
Puntos
13
Resp
1829
Visitas
Por tokens hace 45 meses
Principiante offline

Respuesta #1

Hola, bueno para eso se usa el .htaccess que es un archivo que debes crear. Ser?a algo as?
## Activar mod_rewrite de Apache para la reescritura de las URL
Options +FollowSymlinks
RewriteEngine On

RewriteRule ^agregar/(.+)$ agregar.php?cat=1
Y lo guardas como .htaccess

Pero eso no es todo, debes cambiar el link que lleva a esa URL, por ejemplo
<a href="https://www.dominio.com/agregar.php?cat=1"> link </a>
Ahora ser?
<a href="agregar/<?php echo $_GET['cat'];?>"> link </a>

El archivo .htaccess debe ir en la carperta raiz, no en subcarpetas :P
0
Puntos
Por Jose hace 45 meses
Experto offline Sitio web

Respuesta #2

Hola amigo que ta.
Gracias por darme una mano con el tema este, ya me tiene loco. mira exacatamente mi link de la pagina index a la que toca es el siguiente:
<a href="bloque-uno-detalle.php" class="btn btn-success btn-lg" role="button">Más detalles</a>
(Estoy usando bootstrap)
Entonces el link nuevo como quedaria??
y debo manipular el .htaccess donde dice categoria??
Saludos y muchas gracias
0
Puntos
Por tokens hace 45 meses
Principiante offline

Respuesta #3

Ok bueno el .htaccess sería
## Activar mod_rewrite de Apache para la reescritura de las URL
Options +FollowSymlinks
RewriteEngine On

RewriteRule ^agregar bloque-uno-detalle.php
Eso debería reemplazar
http://www.tu-dominio.com/bloque-uno-detalle.php
por
http://www.tu-dominio.com/agregar


Lo de categoría era porque mi ejemplo así pero no va con tu caso. El link debe ser así
<a href="agregar">link</a>
Y pues sí, me di cuenta que estás usando Bootstrap jaja :P
Cuéntame cual fue tu resultado!
0
Puntos
Por Jose hace 45 meses
Experto offline Sitio web

Respuesta #4

Te pasate amigo genial. efectivamente la url se reescribe. Ahora sera cosa de ir pasando palabras claves po la url.

Solo me queda un par de dudas para redondear el asunto. Las enumero para ver si me cuentas tu experiencia con el asunto.
1- por cada enlace que haya en la pagina yo debo crear a mano en el .htaccess esto (Reemplazando por lo que se requiera obviamente)
RewriteRule ^agregar bloque-uno-detalle.php

2- Como lo podria hacer en el caso que en la url se pase un contador (Id), por ejemplo yo tengo otra web en la que tengo un sistema de comentarios y las url son algo asi.
www.miweb/comentarios-detalles.php?coment=4 
y el numero cambia depende de que comentario se quiera leer.

Eso es estimado de todas maneras igual agradesco mucho tu ayuda.
Saludos y gracias.
0
Puntos
Por tokens hace 45 meses
Principiante offline

Respuesta #5

Hola tokens, pues de nada :D te respondo tus dudas enumerándolas.

1.- Sí, por cada enlace que tu quieras que se reescriba debes crear otra línea parecida a
RewriteRule ^agregar bloque-uno-detalle.php

2.- En el caso de tener un valor para una variable en la URL, se hace como el primer ejemplo que te mostré. En tu caso sería
RewriteRule ^comentarios/(.+)$ comentarios-detalles.php?coment=1
El 1 quiere decir cualquier valor que se encuentre en al otro lado de la igualdad (=).

Saludos y de nada :P un gusto ayudarte.
5
Puntos
Por Jose hace 45 meses
Experto offline Sitio web

Respuesta #6

Ah y me olvidé. El enlace que lleva a ese comentario sería
<a href="comentarios/<?php echo $idComentario; ?>">ver comentario</a>
5
Puntos
Por Jose hace 45 meses
Experto offline Sitio web

Respuesta #7


Muchas gracias estimado por tu ayuda, llevo como 2 meses dando vuelta por muchos foros y nadie me dio una respuesta concreta. Ahora ya está saliendo bien.
Disculpa la patudes si pero tú me contarías que editor de texto usas en tus proyectos web. Te lo pregunto por qué yo uso el ckeditor 4 y siempre me da buenos resultados pero ahora estoy tratando de hacer un blog y por primera vez me veo en la necesidad de poder embeber videos en el post cuando se requiera, pero el editor no da esa opción por defecto sé que hay un plugin de YouTube para el pero no he logrado hacerlo arrancar con ese plugin incluso siguiendo las instrucciones de la documentación oficial no sale.

Saludos amigo.
0
Puntos
Por tokens hace 45 meses
Principiante offline

Respuesta #8

Hola tokens pues yo usaba ckeditor, y me pasó lo mismo que a ti y no lo resolví. Luego me provocó hacer un editor yo mismo, sencillito que coloque letras negras, cursivas.. Dependiendo del caso, usaría de nuevo Ckeditor. Pero sobre el problema que tienes con el plugin de Youtube no se como se soluciona :/
-5
Puntos
Por Jose hace 45 meses
Experto offline Sitio web

Respuesta #9

Si es la eterna cuestion con ckeditor. bueno vere como diablos puedo resolver esto.
Saludos y Gracias.
0
Puntos
Por tokens hace 45 meses
Principiante offline

Respuesta #10

Hola Jose que tal. Estimado mira me ha resultado bastante bien el asunto de la reescritura de las url con la tecnica que me comentaste. Pero la reescritura para url que llevan un id no me resulta.
incluso trato de hacerlo asi.

(Esto en el .htaccess)
RewriteRule ^comentarios/(.+)$ comentarios-detalles.php?coment=1
y en el link pongo esto:
<a href="comentarios/<?php echo $idComentario; ?>">ver comentario</a>

dice que hay una variable indefinida creo??.
Saludos y gracias
0
Puntos
Por tokens hace 45 meses
Principiante offline

Respuesta #11

Hola tokens, ¿le pusiste valor a la variable $idComentario? Si me permites ver el archivo donde se encuentra el link
<a href="comentarios/<?php echo $idComentario; ?>">ver comentario</a>
Para ver si tienes bien la consulta :P
0
Puntos
Por Jose hace 45 meses
Experto offline Sitio web

Respuesta #12

Hola Jose que tal estas.
Mira el asunto es que por motivos de fuerza mayor tuve que restaurar el pc a su estado de fabrica asique el archivo donde estaba realizando las pruebas lo perdi inevitablemente.

Me podrias dar un ejemplo de dicho valor.
Te lo agradeceria muchos. saludos.
0
Puntos
Por tokens hace 45 meses
Principiante offline

Respuesta #13

Hola tokens, me refiero a la consulta que haces para obtener los valores del comentario, post lo que sea, por ejemplo: El autor, el ID en la tabla, el titulo.. Así
<?php
require_once("connection/config.php");
$conectar;
$baseDeDatos;
$query = mysql_query("SELECT * FROM temas ORDER BY prioridad DESC, id DESC")
or die ("Hay un problema al momento de seleccionar los elementos de la tabla temas");
while ($articulo = mysql_fetch_array($query)) {
?>

<article>
<div class="titulo"> <?php echo $articulo["titulo"];?> </div>
<br>
<div class="contenido"> <?php echo $articulo["contenido"]; ?> </div>
<br>
Autor <?php echo $articulo["autor"]; ?>
<br>
<a href='<?php echo $articulo["id"]; ?>'>Ir al articulo</a>
</article>

<?php ?>

La línea
<a href='<?php echo $articulo["id"]; ?>'>Ir al articulo</a>
Dice $articulo["id"]; Eso es a lo que yo me refiero como $idComentario.
Escribi $idComentario como ejemplo, quizás tú lo tienes como
$row_results["id"];
Depende de como hayas llamado cada cosa.. No influye el nombre que le coloques a la variable.
Saludos :D
5
Puntos
Por Jose hace 45 meses
Experto offline Sitio web

Relaccionados

Para comentar Inicia sesión o Registrate