Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2014, 08:02
Avatar de MaNuX0218
MaNuX0218
 
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 8 meses
Puntos: 67
[Tutorial] URLs Amigables

Buenas a todos, hace tiempo que cree estas url amigables para hacer las llamadas a $_GET mas bonitas con urls amigables utilizando php y .htaccess

Lo primero que hay que hacer es crear un archivo .htaccess y ingresar lo siguiente:

Código .htaccess:
Ver original
  1. RewriteEngine On
  2.  
  3. #SetEnv php_ver 5_3
  4.  
  5.  
  6. RewriteCond %{REQUEST_FILENAME} !-d
  7. RewriteCond %{REQUEST_FILENAME} !-f
  8. RewriteCond %{REQUEST_FILENAME} !-l
  9.  
  10. RewriteRule ^(.+)$ index.php [QSA,L]

Ahora queda crear el código php para que funcione correctamente, para eso creamos un archivo llamado request.php o en vez de request como quieran llamarlo.

Y el código es el siguiente:

Código PHP:
Ver original
  1. $urlTmp = $_SERVER["REQUEST_URI"];
  2.  
  3. $quitar = str_replace('http://www.midominio.com/', '', BASE_PATH);
  4.  
  5. $urlTmp = str_replace($quitar, '', $urlTmp);    
  6. $urlTmp = filter_var($urlTmp, FILTER_SANITIZE_URL);
  7. $urlTmp = explode('/', $urlTmp);
  8. $urlTmp = array_filter($urlTmp);
  9.  
  10. $url['dir'] = strtolower(array_shift($urlTmp));
  11. $url['args'] = $urlTmp;
  12.  
  13. unset($urlTmp);

NOTA: Donde pone www.midominio.com deven sustituirlo por su nombre de dominio.

Ahora solo tienen que añadir en su index.php o en su archivo principal:

Código PHP:
Ver original
  1. include 'request.php'; // O pueden poner el nombre que le asignarón

Pues eso sería todo el código que necesitan para poder tener sus url amigables, pero ahora... ¿cómo hago para que aparezcan en la barra de direcciones http://www.midominio.com/hola/ en vez de http://www.midominio.com/index.php?p=hola o cualquier otro metodo llamado por $_GET?

Muy facil!!!!! Solamente tienes que añadir a tus enlaces de la siguiente manera:

Código HTML:
Ver original
  1. <a href="hola/">Mi enlace</a>

Esto seria para $url['dir'] -- DIRECTORIO PRINCIPAL

Código HTML:
Ver original
  1. <a href="hola/saludo/">Mi enlace2</a>

Y esto seria para $url['args'] -- LOS ARGUMENTOS DEL DIRECTORIO PRINCIPAL

De esa manera tu url quedara mejor visible!!!!

Eso es todo espero que os guste y os sea de gran ayuda para mejor vuestras urls. Cualquier duda, no dudes en publicarlo.

Un saludo.