Somos desarrolladores y diseñadores web, nuestro objetivo es el consumidor final.
1
Dec
07

Urls amigables

Url

La primera vez que vi esto ,  pensaba que creaban carpetas donde ponían los archivos htmls :) , pero ya pensando bien dije esto debe ser un arreglo en el servidor web donde corre la página.  Es una muy buena forma de mejorar tu posicionamiento y también te ayuda a mantener más facil tu sitio web.

Si tu manejas urls de este tipo:

  

url2

lamentablemente estas OUT  y  por dios termina de ver este post :)

Además de que te ayuda a posicionar mejor , tambien te facilita en programar tu sitio en un solo archivo ,  en la última versión de wordpress ya puedes hacer esto automaticamente en la sección: Options/Permalinks  .

Para implementar esto en tu sitio necesitas crear un archivo de configuración del servidor web  , el más famoso y conocido archivo .htaccess.  A continuación sigue estos pasos:

1: En tu editor favorito(homesite,dreamweaver,gedit,textmate etc) creas este archivo

HTML:
  1. <ifModule mod_rewrite.c>
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteCond %{REQUEST_FILENAME} !-d
  6. RewriteRule . /index.php [L]
  7. </ifModule>

 

Explicación: Si te fijas en la linea  6 , te indica  que pagina quieres cargar en todo el directorio, por ejemplo aqui es index.php , pero si estuvieras trabajando localmente en tu servidor web tendría que ser así :  RewriteRule . /tu_proyecto/index.php [L]

Un ejemplo práctico con PHP: 

1: Creamos la carpeta tu_proyecto en la raiz de tu servidor web Ejemplo de la dirección que debería tener:

/appserv/www/tu_proyecto

/var/www/tu_proyecto

2: Dentro tu_proyecto , creamos el archivo .htaccess

HTML:
  1. <ifModule mod_rewrite.c>
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteCond %{REQUEST_FILENAME} !-d
  6. RewriteRule . /tu_proyecto/index.php[L]
  7. </ifModule>

 

3:  Creamos el archivo php, lo que hace este archivo es recibir la url , con la función explode hacemos un array separando el /, si seguimos la lógica el ultimo elemento del array debería ser la palabra clave que forma la url  y seguido de un switch para cargar la sección deseada .

PHP:
  1. <?
  2.  
  3. $peti_url=explode("/",$_SERVER["REQUEST_URI"]);
  4. $ubicacion=$peti_url[count($peti_url)-1];
  5.  
  6. ?>
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8.  
  9. <html>
  10. <head>
  11.     <title>Untitled</title>
  12.     <style type="text/css">
  13.     ul#menu{
  14.         list-style-type:none;
  15.         margin:0px;
  16.         padding:0px;
  17.     }
  18.     .clear{
  19.         clear:both;
  20.     }
  21.  
  22.     #menu li {
  23.         float:left;
  24.         margin:5px;
  25.         padding:5px;
  26.         color:white;
  27.         font-weight:bold;
  28.         background-color:blue;
  29.     }
  30.     #menu li a{
  31.         color:white;
  32.         text-decoration:none;
  33.     }
  34.     #menu li a:hover{
  35.         color:red;
  36.     }
  37.  
  38.     </style>
  39. </head>
  40.  
  41. <body>
  42.  
  43. <ul id="menu">
  44.     <li><a href="acercade">Acerca de</a></li>
  45.     <li><a href="servicio">Servicios</a></li>
  46.     <li><a href="portafolio">Portafolio</a></li>
  47.     <li><a href="contacto">Contacto</a></li>
  48. </ul>
  49. <div class="clear"></div>
  50. <p>
  51. <?
  52.     switch($ubicacion){
  53.         case "acercade":
  54.         echo "<h1>Contenido de la pagina Acerca de</h1>";
  55.         break;
  56.         case "servicio":
  57.         echo "<h1>Contenido de la pagina Servicios</h1>";
  58.         break;
  59.         case "portafolio":
  60.         echo "<h1>Contenido de la pagina Portafolio</h1>";
  61.         break;
  62.         case "contacto":
  63.         echo "<h1>Contenido de la pagina Contacto</h1>";
  64.         break;
  65.         default:echo "<h1>Contenido de la pagina index</h1>";
  66.  
  67.     }
  68. ?>
  69.  
  70. </p>
  71. </body>
  72. </html>

Dejo los archivo de ejemplo para que los descargues: url amigables

3 Comentarios

Hola, excelente hace tiempo quería saber como sea hacia esto de las URLs , una pregunta en ASP como lo sería?

Publicado el December 2nd, 2007 a las 9:24 am

Hola
Una pregunta , por ejemplo: Si yo tengo un sitio en Joomla como puedo hacer el cambio de URLs?

Publicado el December 3rd, 2007 a las 1:25 pm

Karim: Hola Karim , en ASP es el mismo procedimiento , haces el .htaccess , pero tienes que buscar una función en ASP para obtener la URL , ya teniendo la URL puedes buscar otra función como explode para hacerlo array, con eso ya obtienes el valor para saber en que página va estar el usuario.

nico:Mmm Joomla creo todavía no tiene para urls amigables pero si joomla te bota urls asi:
index.php?page=5
5 se supone que es el ID en la base y tendrias que hacer una consulta para obtener un string claro porqué 5 debe tener un campo llamado nombre que ahi debe estar el string Acercade

Publicado el December 3rd, 2007 a las 3:42 pm

Deja tu comentario

* Campo Requerido

* Campo Requerido

* Opcional