lunes, 12 de octubre de 2009

Mod_rewrite convertir direcciones dinamicas en estaticas

Cuando programamos en un lenguaje de servidor como puede ser PHP o ASP.NET muchas veces pasamos algunos datos en la direccion de la pagina para obtenerlos por GET. asi una direccion dinamica seria algo asi:

http://www.juancito.com/index.php?sec=12


En primera instancia no habria nada de malo en tener una direccion de este tipo siempre que se realicen las validaciones correspondientes a esos datos en el lado del servidor.
Ahora el principal problema que surge es cuando queremos que nuestra pagina sea indexada por los robot de los buscadores, que muchas veces son incapaces de indexar esas direcciones sobre todo cuando los parametros que se pasan son muchos, es por eso que se puede usar una herramienta de apache para lograr direcciones mas atractivas por asi decirlo.
El Mod Rewrite es un módulo para el servidor Apache que sirve para reescribir las direcciones url. Este modulo se maneja por un conjunto de reglas que estan en un archivo .HTACCESS en el servidor, asi podemos cambiar la direccion anterior por una asi:
http://www.juancito.com/index-12.htm

Debido a que la traduccion de la url estatica se realiza al vuelo, se pueden utilizar ambas direcciones la estatica y la dinamica sin inconvenientes, aunque la estatica solo se utilizara si se la llama especificamente.

Mod Rewrite para un sola variable:


La sintaxis del mod rewrite es la siguiente:

rewriterule <secuencia a encontrar : pattern> <cadena para sustituir : substitution>

Secuencia : Pattern(patron) es una expresión regular la cual es aplicada (al vuelo) a la dirección URL actual. La dirección URL actual podría haber cambiado de antemano por la cadena de sustitución, es decir, toda la direccion URL pudiera no ser la misma.


Sintaxis de las expresiones regulares:

. (punto) cualquier caracter
[chars] no de los caracteres
[*chars] ninguno de los caracteres

Cuantificadores

? 0 o 1 del texto precedente
* 0 o N del texto precedente
+ 1 o N del texto precedente

Agrupamiento

(texto)

Inicio y fin de la cadena

^ Inicio de la cadena
$ Fin de la cadena

\char Escape, se utiliza para sustituir ( ) [ ] los cuales son marcadores

‘ last | L’ es el marcador de la ultima instrucción del MOD_REWRITE y detiene la ejecución.

Ejemplo:

En nuestro ejemplo queremos transformar esto http://www.juancito.com/index.php?sec=12 en esto http://www.juancito.com/index-12.htm, la directiva del archivo .htaccess seria:

Rewriterule ^index-(.*)\.html$ index.php?sec=$1

De esta manera el mod rewrite hara el proceso inverso al que hacemos nosotros cuando reciba la direccion /index-12.htm la transformara en /index.php?sec=12. Los valores de las variables a reempazar se representan con $a donde a es el numero contado de izquierda a derecha empezando por uno.
Asi para que funcione deberiamos subir el archivo .htaccess al servidor con el siguiente codigo:

RewriteEngine on
Rewriterule ^index-(.*)\.html$ index.php?sec=$1

Donde RewriteEngine on indica que usaremos el mod rewrite.
Si queremos transformar una direccion con mas de un parametro por ejemplo:
pagina.php?sec=perfil&usr=carla&id=265

la entrada del htaccess quedaria asi

Rewriterule ^perfil-([^/]+)-(.*)-(.*)\.html$ pagina.php?sec=$1&usr=$2&id=$3

y la url quedaria asi:
/perfil-carla-265.htm

bueno eso es todo, de mas esta decir aunque siempre hay algun despistado, que hay que modificar las direcciones de los enlaces de los archivos y poner las nuevas url, sino no va a funcionar, es decir en los links en donde aparecia pagina.php?sec=perfil&usr=carla&id=265 hay que poner /perfil-carla-265.htm.

martes, 6 de octubre de 2009

Instalando ubuntu 9.04

Bueno en este post intentare poner la mayor cantidad de información que pueda acerca de la instalación de este SO.
Hace ya un año y medio que uso este sistema operativo, ya que mi notebook venia de fabrica con windows vista, pero el hardware era algo reducido (tengo una compaq f755) y la verdad que era sumamente lento. Asi que opte por probar e instalar linux. De todas las distribuciones elegi ubuntu sobre todo por su simplicidad cuando uno viene acostumbrado a usar siempre los SO de microsoft.
Por experiencia propia para todo aquel que solo va a probar el SO siempre puede instalarlo primero en una maquina virtual.
Linux cuenta con diferentes distribuciones, algunas gratuitas otras con soporte pago. Basicamente las mismas tienen tres grandes raices las basados en slackwave, debian o redhat. Ubuntu es una distribución basada en debian. Ademas de distribuciones linux tiene distintos escritorios siendo los utilizados por ubuntu (Gnome,KDE y Xfce). siendo gnome el que viene por defecto en Ubuntu y KDE el de Kubuntu.
Ubuntu tiene sus ventajas y desventajas, pero la mas grande creo yo es olvidarse de los virus.
Primer paso:
Lo primero que hay que hacer es bajarse el cd de instalacion que se puede encontrar aqui para luego grabarlo en un cd.
Segundo paso:
Si vamos a instalar ubuntu junto con windows entonces primero es recomendable que desfragmentemos el disco rigido, para evitar problemas durante la particion.
Una vez hecho esto reiniciamos con el cd de ubuntu en la unidad de cd, y entonces comenzaremos con la instalación.
Tercer Paso:
Lo primero es elegir el idioma
Luego nos aparecera el menu de las opciones. La primera vez que usamos el cd debemos comprobar el cd por posibles errores de grabación que pueda tener lo que nos puede traer problemas. Una vez que todo esta ok, procedemos a instalar. (Si quisieras probar antes de instalar puedes iniciar el SO en el modo live desde el cd para obtener un pantallazo del SO) .Despues de cargar en memoria lo requerido para la instalación, aparecera un asistente que consta de 7 pasos.
El primer paso es selecionar el idioma.
El segundo paso del asistente nos pedira la zona horaria en donde estamos.

Hasta aqui todo deberia marchar bien y sin mayores problemas. A partir de aqui hay que prestar atencion debido a que los pasos siguientes son cruciales y un error en la configuracion puede hacer que se pierdan datos guardados en el disco.

Ahora llega el momento más importante de la instalación: el particionado. Para particionar el disco duro vamos a ver dos posibilidades:

  • Particionado guiado (sencillo pero no configurable).
  • Particionado manual (complejo pero completamente configurable).

Por favor leer los dos metodos primero antes de continuar
Particionado Guiado:
Si elegimos el particionado guiado, sólo tenemos que indicar el tamaño de la partición que queremos que use Ubuntu y el instalador creará automáticamente dos particiones:
-- Partición raíz (/): contendrá, en este caso, los directorios y archivos del sistema operativo y los datos de los usuarios (documentos, imágenes, música, etc.).
--Partición de intercambio (swap): Lugar del disco destinado a la memoria virtual del sistema.

Dicho esto, sólo tenemos que modificar el tamaño de la partición para Ubuntu como se ve en la imagen pero ¿qué tamaño es el adecuado? Eso depende del uso que vayamos a darle. Lo mínimo serían 4 GB y lo máximo, lo que quieras. Para empezar con Ubuntu, con 8 o 10 GB es suficiente, aunque si vamos a almacenar video o archivos mp3s ese tamaño seguramente nos resultara muy poca.

Por ultimo cuando queremos ir al paso siguiente nos preguntara si queremos guardar los cambios, si estamos seguros ponemos continuar.

Particionado manual

Si elegimos el particionado manual, tendremos un control mucho mejor de las particiones. Podemos seleccionar el número de particiones, su tamaño, tipo de sistema de ficheros y punto de montaje. Para un sistema de escritorio conviene tener tres particiones:

  • Partición raíz (/): contendrá los directorios y archivos del sistema operativo y programas.
  • Partición home (/home): contendrá los directorios y datos de los usuarios (documentos, imágenes, música, etc.). Así los datos aimportantes estaran protegidos ante cualquier eventualidad.
  • Partición de intercambio (swap): lugar del disco destinado a la memoria virtual del sistema. se recomienda que su tamaño sea el doble de la memoria RAM.

Para iniciar el particionado manual, elegimos Especificar particiones manualmente (avanzado) y hacemos clic en Adelante.

Entonces los primero que haremos sera resizar una de las particiones existentes, poniendo el nuevo tamaño que sera menor ya que necesitamos espacio en el disco para crear las nuevas particiones. El tamaño para resizar estara dado por el tamaño actual de la particion menos el espacio que necesitamos para las particiones de linux.

Una pantalla nos preguntara si queremos continuar, si estamos seguro ponemos que si y volveremos a la pantalla anterior pero con la diferencia de que ahora tenemos espacio libre para las nuevas particiones.

Lo que haremos sera selecionar espacio libre y clikear en particion nueva.

En la ventana que aparece debemos indicar:

  • Tipo de partición: la partición raíz (/) debe ir en una partición primaria.
  • Tamaño en MB: Tamaño en MB de la particion para los archivos de sistema, como minimo debe tener 3000mb.
  • Sistema de archivos: ext3 es el sistema que usa Ubuntu por defecto. Tambien esta disponible ext4, que es un poco mas veloz.
  • Punto de montaje: / (la raíz). No nos podemos olvidar de esto, es fundamental
Entonces ponemos aceptar y ya tenemos la primera partición.
Luego hacemos el mismo procedimiento para la particion del swap pero seleccionamos logica en vez de primaria, seleccionas el tamaño y en sistema de archivos seleccionas Area de intercambio swap.
Para la ultima particion hacemos lo mismo que en la primera, la ponemos como logica, le ponemos el tamaño deseado y en el punto de montaje seleccionamos
/home.
Tras aceptar esta ultima particion ya tenemos todas las particiones le damos a siguiente.
En el paso siguiente nos preguntara el nombre del usuario y su password (importante ya que sera el password del administrador), y el nombre del equipo.
El siguiente paso nos preguntara si queremos importar datos de algun usuario de windows, el siguiente paso nos mostrara un resumen de la configuración. si apretamos siguiente en esta paso se instalara el SO.
Una vez instalado debemos reiniciar quitando el cd de instalacion y veremos esta pantalla para elegir SO, elegimos la primera opcion y arrancamos ubuntu.

Con esto ya deberiamos tener el ubuntu funcionando, en el proximo post pondre algunos trucos para personalizarlo de manera que queda un poco mas a nuestro gusto.

Parte de la informacion fue extraida de http://sliceoflinux.com/2009/04/23/instalar-ubuntu-904-paso-a-paso/

Comienzo

Bueno este post es solo para comentar que en este blog que he empezado voy a publicar infinidad de cosas que tengan que ver con las computadoras y la internet. Voy a publicar todo aquello que me llame la atencion y quiera conservar.