Etiquetas

domingo, 10 de abril de 2011

La importancia de PERL

Como soy estudiante de informática y mi vida ya vale poco de por sí, decidí malgastar un viernes haciendo una página web para unos colegas. Le puse contraseña, por gusto, mediante la configuración de apache.en principio si ponías ".../Admin.php" te pedía password. Hasta ahí todo claro. Pero a nadie le gusta poner mayúsculas, y empecé a poner solo ".../admin.php". Comodidad. No me pedía password, y pensaba que era cosa de las cookies, que como tenía la sesión iniciada...
Total, que cambié de navegador...y...cáspita, tampoco aparecía el cartelito pidiéndome password. Así que empecé a mirar en foros y demás. Según la documentación de apache, se carga el módulo mod_speling para corregir mayúsculas y minúsculas. Lo deshabilité (sudo vim FTW) poniendo # delante de LoadModule. "sudo apachectl -k restart". Nada, no cambiaba nada. Volver a cambiar configuración. Habilitar módulo. Directiva CheckSpelling off. Nada. Llevo desde el viernes dándole vueltas. Y no encontraba manera. Y he pensado "joder! y si soy tan inútil de haber configurado el sistema de archivos sin distinción de mayúsculas y minúsculas, y por eso me permite bypassear la autentificación??". Pruebo con cd dEsktop. OMFG, funciona. Alguien ha sido tan inútil como para...efectivamente, formato de archivos MacOs plus, con registro, sin distinción entre mayúsculas y minúsculas...T.T
Y es demasiado tarde. No puedo formatear el disco duro a estas alturas...

Por me he pasado la tarde en los foros para ver si podían emplearse expresiones regulares.
Y sí.
Siempre que queráis usar expresiones regulares en ciertas directivas de la configuración de Apache, (a excepción de aliasmatch, que ya presupone que se le pasa una regexp) poned ~ "regexp", donde regexp será la expresión regular que necesitéis...

Por ejemplo, mi archivo de configuración ha quedado tal que así:

Qué he hecho exactamente?
Para que apache reconozca que lo siguiente es una expresión regular, tendréis que poner el moño, seguido de la expresión regular entre comillas.
^ Significa que la expresión empieza con la cadena que escribamos a continuación.
[] La cadena será válida si contiene cualquiera de los caracteres entre los corchetes.
\. el punto, por defecto, simboliza cualquier carácter. Si queremos representar un punto a secas, debemos anteponerle una contrabarra

Básicamente lo que he hecho es que reconozca cualquier combinación de cadenas. Se pueden hacer verdaderas virguerías con las expresiones regulares.
* después de un elemento o cadena significa que puede repetirse entre 0 e infinitas veces.
+ por otra parte, obliga a que se repita al menos una vez.
{x,y} el caracter x se repite y número de veces.
y un montón de cosas que encontraréis en:

No hay comentarios:

Publicar un comentario