Main Menu




browser lang:en

Users Area

Client Login

today cache size is:0

 

 


Comentarios

re:cdn
03/12/2010 by holy
CDN
01/12/2010 by Sorin
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
Upbooking - free booking engine

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)


Comentarios

Deja tu comentario

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

Users

Videos


Scripts & Tutorials

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)

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)

Tutorial intermedio a mod_rewrite

18/10/2008 

1 ¿Qué hace el mod_rewrite? El mod_rewrite configura su servidor apache para garantizar que las páginas dinámicas (en este…

in:Scripts (0 comentarios)

Construyendo Holyguard.net:Un motor de cache

09/10/2008 

Sea por el incremento de visitantes ó por el uso de scripts complejos, la ejecución de…

in:Scripts (0 comentarios)

Leer más »


Tag Clouds


Crear plugin Opensearch nuestra webEscribir html javascriptTutorial intermedio modrewriteConstruyendo HolyguardnetUn motor cache


Add to Technorati Favorites