PDA

Ver la Versión Completa : Fotos, PHP y Apache



PedroReina
13/02/06, 00:54:04
(Me temo que este post puede resultar largo)

Desde que tuve la primera cámara digital me di cuenta de lo fácil que sería compartir imágenes con todo el mundo gracias a la web. Como disponía de servidor propio, comencé a trabajar en un método para facilitar la navegación por las fotos, que pensaba colgar en gran número. Aunque ya existían muchos programas para gestionar galerías, preferí escribir uno propio.

El lenguaje que elegí es PHP porque es libre y muy adecuado para la web, pricipalmente. Así nació el programa fn, que me permitió dar URL como estas:

El índice de una serie de fotos: http://pedroreina.net/fotos/navegacion.php?Serie=2006-01-22&Numero=0
Una foto en concreto: http://pedroreina.net/fotos/navegacion.php?Serie=2006-01-22&Numero=40

El método funcionó, pero las URL que generaba me parecían excesivamente largas y poco intuitivas (especialmente para los no expertos en los asuntos técnicos de la web), de modo que desde hace poco utilizo una característica del servidor web Apache que permite reescribir las URL sin que el usuario se entere. El módulo de Apache que se encarga de esta reescritura se llama mod_rewrite (http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html).

Gracias a él, las direcciones anteriores son accesibles desde http://pedroreina.net/fotos/2006-01-22.0 y http://pedroreina.net/fotos/2006-01-22.40.

Como podéis observar, se han eliminado de la URL tanto el nombre del script PHP como los nombres de las variables que recibe, quedando únicamente los valores de las variables. En mi opinión, queda mucho más limpio, además de ser obviamente más corto.

El módulo mod_rewrite utiliza para las reescrituras unas reglas que utilizan expresiones regulares (http://www.regular-expressions.info/), lo que lo hace muy flexible. En concreto, para conseguir esta redirección hay que escribir en un archivo llamado .htaccess una línea como esta:

RewriteRule ^(.+)\.([0-9]+)$ navegacion.php?Serie=$1&Numero=$2
(hace falta alguna línea más, pero esta es la más importante).

Tras comprar la Canon 350D y conocer este foro, he tomado otra vez con muchas ganas esto de la fotografía y ahora me apetece hacer una pequeña selección de las fotos y colocarlas de un modo destacado. Así que otra vez he escrito un poco de PHP y he vuelto a usar mod_rewrite.

El resultado está en http://pedroreina.net/sfd/, donde podréis apreciar que en ningún momento se nota si las páginas están servidas por PHP, son estáticas o qué pasa. Por ejemplo, el gato que me ayudastéis a mejorar en La Pulidora está en esta URL: http://pedroreina.net/sfd/gato (fijaos especialmente por favor en la forma que tiene la URL).

En resumen: con PHP se pueden manejar las fotos vía web estupendamente y con Apache se puede conseguir que las URL sean sencillas e intuitivas.

Editado: he arreglado los vínculos

biketrialero
13/02/06, 21:32:07
Pedro te esta quedando una web muy maja la verdad… con datos efix y todo

Este año si quieres vamos juntos al Red Bull X-Fighters de Madrid a ver a Torrenteras..

Saludos.

PedroReina
13/02/06, 21:50:08
Este año si quieres vamos juntos al Red Bull X-Fighters de Madrid a ver a Torrenteras..
Claro que sí, cuenta conmigo.

Zeos
15/02/06, 10:19:01
Tengo pendiente probar el mod_rewrite.... estoy usando un portal con php y le quiero poner direcciones mas decentes, por aquello de que el google las pille y demas, que es un punto importante. ¿Te ha costado usarlo?

PedroReina
16/02/06, 21:56:17
le quiero poner direcciones mas decentes, por aquello de que el google las pille y demas, que es un punto importante
La araña de Google, Googlebot (http://www.google.com/webmasters/bot.html), te indexará tu web perfectamente aunque las URL sean feas. Lo que hay que conseguir es que tengas en la web vínculos internos que te recorran la web entera. Googlebot rastrea HREF y SRC, así que hay que olvidarse de marcos e "inventos raros".


¿Te ha costado usarlo?
Los ejemplos sencillos fueron inmediatos: seguir la documentación y listo. El último que he usado http://pedroreina.net/sfd/ me ha costado un poco más porque era más raro, pero también he aprendido más. El único "truco" es saber mínimamente algo de expresiones regulares.