Main Menu




browser lang:en

Users Area

Client Login

today cache size is:222615

 

Holyguard rss
rss 2.0 for all sections

 

Portfolio

Some of my projects:
CTIBA
MA-NO Web Agency
BluPool
L'Pratone
Travel in Hotel
Yacht Elements
AbruzzoWeb
Il Mastino
CSI Teramo
Innovazione S.p.a.




Comentarios

No sirve
19/12/2008 by

Leer Más »


RAPIDQ

Rapid-Q:The lost files
My old library where i have collected all the rapidq scripts and italian help


Today my pagerank is: Free Page Rank Tool

Tutorial intermedio a mod_rewrite

1 ¿Qué hace el mod_rewrite?

El mod_rewrite configura su servidor apache para garantizar que las páginas dinámicas (en este caso php) van a cambiar completamente y la extensiónes parecen páginas html

2 ¿Qué es la transformación de estática a dinámica?

Esta transformación sirve para asegurarse de que su página está mejor tratada por un motor de búsqueda. Un motor de búsqueda podría tener algunas dificultades para seguir un enlace tal que así:
código:

http://www.ejemplo.es/index.php?page=noticias&id=69

Así, a través de la reescritura de la URL puede transformar lo anterior enlace a una página como esta:
código:

http://www.ejemplo.es/index/noticias/69.html

Una página de este tipo os aseguro, es mejor visto por los motores de búsqueda (Google primero)

Yo en este caso he utilizado 2 variables en mi url en php:

* page * Página
* id * Id

Es evidente que cuanto más alto es el numero de variables, más bajo serà la importancia para su página en motor de búsqueda.

3 ¿Cómo puedo asegurarme de que mi apache acepte la reescritura?

- A Para hacer esto debes cargar un módulo llamado mod_rewrite de apache

mod_rewrite.c

Para hacer esto debes ir en el archivo de configuración de apache: httpd.conf y descomentar las siguientes líneas:

código:

LoadModule rewrite_module modules/mod_rewrite.so LoadModule rewrite_module modules / mod_rewrite.so

AddModule mod_rewrite.c AddModule mod_rewrite.c

Una vez que se han hecho reiniciar Apache.

- B - Intente ejecutar un archivo escrito en:

Código PHP:


phpinfo();


fijad el directorio donde se encuentra el fichero de configuracion de apache y empezad a configurar como en paso A
La mayoría de nosotros (creo) tiene hosting que, evidentemente, no puede cambiar los ficheros de configuración entonces averiguad què el servicio se está ejecutando.

4 OK en mi servidor se está ejecutando el servicio ¿qué debo hacer?

Luego, en el supuesto de que el rewrite ejecute en ordenadores con Windows OS y Linux (yo en local lo hice en los dos y sin problemas) hay què crear un archivo llamado .htaccess.
Dentro de este archivo tendremos que escribir la regla que queremos nuestro servidor web interprete.

Permítanme 3 ejemplos de lo que se puede hacer (quien es más inteligente de mí, y no es dificil, con expresiones regulares puede hacer milagros):

* * * Ejemplo 1 * * *

Si por ejemplo utilizando el sistema en plantillas php puesta a disposición por este sitio:

ARTÍCULO AQUÍ: http://www.holyguard.net/noticias/id_582/idcat_31/pro.html

Estamos en páginas dinamicas como esta:
código:

http://www.holyguard.net/index.php?page=noticias&id=582&cat=31

¿Qué significa esto?
Esto significa que estamos utilizando 2 páginas y 3 variables:

En este caso el código php que llama desde la primera pagin serà una cosa más o menos similare a esto
Código PHP:


$p="main";  //por defecto la página de Contenido Central
if(isset($_GET['page'])){  //pagina emviada via parametro
    $p=$_GET['page'];
    if($p!=basename($p) || !preg_match("/^[A-Za-z0-9-_]+$/",$p) || $p=="index" || !file_exists($p.".php"))
        $p="error";     //pagina de error
    }
    include($p.".php");

Es decir, incluir las páginas que se transmiten a través de la página variable $ (?page = nombrepagina) en la página que está viendo

Y luego hay noticias.php la página que recibe los valores de la variable $ id (&id =) y el uso más o menos como esta:
codice PHP: Código PHP:


$query = mysql_query("Select * from noticias where id='$_GET[id]'");

Entonces tendrás la URL dicha anteriormente:
código:

http://www.sitio.com/index.php?page=noticias&id=69

Pero pronto la trasformamos en una página como esta:
código:

http://www.sitio.com/index/noticias/69.html

Para hacer esto no tendrás otra alternativa que la de escribir la siguiente regla en .htaccess:
código:

RewriteEngine On
RewriteRule ^index/([^/]+)/([^/]+).html index.php?page=$1&id=$2 [L]

Y esto permite hacer la transformación como en el vínculo anterior

* * * Ejemplo 2 * * *

Mi sitio tiene sólo una variable en la URL como la siguiente:
código:

http://www.sitio.com/noticias.php?id=69

Como tendria què ser mi regla para el archivo .htaccess?
código:

RewriteEngine On
RewriteRule ^notizie/([^/]+).html noticias.php?id=$1 [L]

Questa mi permetterà di trasformare la pagina in Esto me permitirá pasar la página
codice: código:

http://www.sito.com/notizie/69.html

* * * 3 EJEMPLO * * *

Esto no difiere mucho de los primeros 2, pero sólo sirve para dejar claro de amplia útilizacion que podemos hacer con la reescritura:
Supongamos que yo uso la clase fpdf para crear los archivos en formado .pdf
Para ello vamos a tener dentro de las páginas una consulta con base de datos para extrapolar los datos y, a continuación, las diversas instrucciones a la clase:
Código PHP:


$query = mysql_query("Select * from noticias where id='$_GET[id]'");

//............. etc etc

//incluimos la classe
require('fpdf.php');

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Image('img/logo.jpg', 50, -10, 105, 48);
$pdf->SetTextColor(255,080,100);
$pdf->write(8, "                              $titulo\n\n");
$pdf->SetTextColor(0,0,0);

$pdf->write(8, "-Autor: $autore\n\n");
$pdf->write(8, "Texto: $texto\n");

Para recuperar el archivo en formato pdf escribimos una dirección URL de este tipo aquí:
código:

http://www.sitio.com/pdf_noticias.php?id=69

Ademas a través de mod_rewrite podemos crear un falso (o como falsa redireccion) archivo pdf:
código:

http://www.sitio.com/pdf_noticias/69.pdf

Para todos los efectos, parece realmente un archivo pdf nunca más sería pensar que en realidad es una página en php
Para lograr esto es suficiente escribir en mod rewrite el siguiente:
codice: código:

RewriteEngine On
RewriteRule ^pdf_notizie/([^/]+).pdf pdf_notizie.php?id=$1 [L]

simplemente cambiar la extensión en la regla.
Un poco más sofisticado sería utizzare cosa en la URL como la siguiente:
código:

http://www.sitio.com/noticias/69-titulo-noticia.html

Esto es (lo que he leído en el último mes en los motores de búsqueda de este foro y por lo que he visto en los diversos organismos SEO = motor de búsqueda optimizado) para què los modores de busqueda leen nuestras páginas.

La regla de que tenemos que usar es siempre la misma:
código:

RewriteEngine On
RewriteRule ^notizie/([^/]+).html notizie.php?id=$1 [L]

Sin embargo, en tu página php (es decir, noticias.php) use el comando explode
Código PHP:


$pagina = $_GET[id];
$divisore = explode("-", $pagina);
$id =  $divisore[0];// devuelve el numero que tienes antes de -
$query = mysql_query("Select * from noticias where id='$id'");

Espero que lo que es explicado de manera clara y que podría ser útil (perdonais mi castellano)

Rating:
53.0
9 votes
1 2 3 4 5

Comentarios

Deja tu comentario

Titolo
Messaggio
Nome Utente
e-mail (se vuoi ricevere le risposte a questo post anche via mail)

Videos


Contenidos

UBUNTU - Upgrade de los drivers ALSA 1.0.20 en Ubuntu 9.04 Jaunty Jackalope

09/01/2010 

¿Qué es ALSA (Advanced Linux Sound Architecture)? Advanced Linux Sound Architecture (conocido por el acrónimo ALSA) es un componente…

in:Blog (0 comentarios)

Solucionar el problema del UTF-8 con PHP

03/08/2009 

Con estas filas de codigo podemos solucionar el problema UTF-8 en Php //Realizamos la conexion con…

in: (0 comentarios)

Mysql - Averiguar si existe un campo u una tabla

10/05/2009 

aquì una snippet rapida para averiguar si un campo existe en una tabla mysql: codice PHP: if ( mysql_num_rows(mysql_query("SHOW COLUMNS…

in:MySql (0 comentarios)

Amigos en la red

18/03/2009 

Acabo de recebir un link desde una de las webs mas interesantes y visitadas de españa (y de…

in:Blog (0 comentarios)

Crear un plugin Opensearch per nuestra web

14/11/2008 

Presente en Mozilla Firefox desde hace mucho tiempo, con la nueva versión de Microsoft Internet Explorer 7 esta…

in:Scripts (0 comentarios)

Nuevas classes Enterprise por Google Analytics

23/10/2008 

Gracias a una comunicaciòn de David Benito, SEO de solmelia.com, justo ahora he descubierto las nuevas implementaciònes de…

in: (0 comentarios)

Escribir html en un div con javascript

22/10/2008 

Escribir html en un div con javascript, como? En esta manera. Codigo: function WriteLayer(ID,parentID,URL) { if…

in:Scripts (1 comentarios)

Enlaces de Octubre

19/10/2008 

Cursos gratis de Informatica

in:Enlaces Utiles (0 comentarios)

Leer más »


Tag Clouds


UBUNTU Upgrade drivers ALSA 1020 Ubuntu Jaunty JackalopeSolucionar problema UTF8 PHPMysql Averiguar existe campo tablaAmigos redCrear plugin Opensearch nuestra webNuevas classes Enterprise Google AnalyticsEscribir html javascriptEnlaces Octubre


Add to Technorati Favorites