Nuestro conocimiento compartido. Nuestro tesoro compartido. Wikipedia.
TreeWeb::Artículos::Apache::mod-rewrite para URL amigable
Permalink: http://www.treeweb.es/u/855/ 23/11/2010

mod-rewrite para URL amigable

Activar el módulo apache

Primero añadimos el módulo
    0 
    1 sudo a2enmod rewrite

    2 
Editamos el archivo '/etc/apache2/sites-enabled/000-default' y sustituimos AllowOverride None por AllowOverride All
    0 
    1 DocumentRoot /var/www
    2 <Directory />
    3     Options FollowSymLinks
    4     AllowOverride All
    5 </Directory>
    6 <Directory /var/www/>
    7     Options Indexes FollowSymLinks MultiViews
    8     AllowOverride All
    9     Order allow,deny
   10     allow from all
   11 </Directory>

   12 

Crear la reescritura de url en .htaccess

Creamos un archivo .htaccess en el directorio en el que se van a empezar a procesar urls. Y también creamos un archivo index.php que será al que enviaremos las peticiones de url.
    0 
    1 RewriteEngine On
    2 
    3 RewriteCond %{REQUEST_URI} !/dir1|/dir2
    4 RewriteRule (.*) index.php?ruta=$1 [L,QSA]
    5 
    6 
    7 
    8 

    9 
La parte /dir1|/dir2 significa que NO procesará las urls que tengan /dir1 ó /dir2 .

NOTA: El archivo .htaccess debe tener codificación ascii

Procesar la url en index.php

Ahora al archivo index.php recibirá la url en una variable GET.
    0 
    1 <?php
    2     
echo $_GET['ruta'];
    3 
?>
    4 

    5 
A la hora de procesar la url puede sernos útil la función explode (http://es2.php.net/manual/es/function.explode.php) que divide una cadena a partir de un caracter dado y devuelve un array con todas las subcadenas.
Por ejemplo:
    0 
    1 <?php
    2     $subcadenas 
explode('/'$_GET['ruta']);
    3     foreach (
$subcadenas as $sc)
    4         echo 
"$sc<br>";
    5 
?>
    6 

    7 
Powered by TreeWeb
© TreeWeb 2010. Todos los derechos reservados