Mayúsculas y minúsculas en la gestión de servidores

En inglés se conoce como “Case sensitive” cuando se diferencia entre mayúsculas y minúsculas y como “Case insensitive” cuando no. Esta diferencia es un aspecto que debemos tener en cuenta cuando gestionamos nuestros servidores, ya que depende de los  diferentes sistemas operativos en los que trabajemos.

Por norma general, Windows no distingue entre mayúsculas y minúsculas, pero Linux, sí. En este artículo, repasamos algunas recomendaciones básicas sobre cómo y cuándo usar las mayúsculas y minúsculas en la gestión de servidores.

Regla general, Linux es Case Sensitive

Linux distingue entre mayúsculas y minúsculas, así que index.php no es lo mismo que INDEX.php. Por tanto, las URL http://ww.indicatudominio.com/index.php y http://www.indicatudominio.com/INDEX.php son distintas y pueden tener contenidos distintos.

Regla general, Windows es Case Insensitive

Al contrario que en Linux, en Windows los archivos escritos en mayúsculas o minúsculas son indiferentes. Por lo tanto, en el caso de las dos URL anteriores se accedería a la misma página, mismo archivo y mismo contenido.

Esto podría acarrear, entre otros, dos problemas importantes:

  • Si desarrollas sobre Windows, tu servidor es Linux y te equivocas en una ruta, al subir el proyecto descubrirás que no funciona.
  • Cuando rescatas un proyecto con nombres de archivo iguales, pero distinto tamaño de caja, en Windows no podrás editarlos, ya que para el sistema, es el mismo archivo.

MAC OS X

En Mac OS X, a pesar de tener un sistema operativo basado en Unix, no distingue en muchos casos en mayúsculas y minúsculas y dependerá de cómo hayamos realizado la instalación del sistema y de cómo se haya formateado el disco duro.

Tecleando el comando desde el terminal

diskutil list /

Nos dará la información sobre el tipo de sistema que tenemos y así saber si es o no sensible. Aunque también puedes crear dos archivos con el mismo nombre (mayúsculas y minúsculas) y distinto tamaño de caja.

Tecleando el comando desde el terminal

touch ARCHIVO.txt 
touch archivo.txt

Hecho esto, listas el directorio (comando ls –l). Si encuentras los archivos creados,  tu sistema es sensible, si no, sólo verás un archivo (el último introducido).

Módulo Apache mod_speling

mod_speling  es un módulo disponible de Apache con el que se puede alterar la manera con la que se distinguen las URL, evitando tener en cuenta si son mayúsculas o minúsculas lo que figura en la URL.

CheckSpelling on|off

Si lo tenemos instalado mod_speling como mod enabled, realizará una serie de intentos para encontrar un archivo parecido a la URL que se solicitó.

Por ejemplo, en la URL http://www.indicatudominio.com/prueba.php intentará buscar un archivo llamado prueba.php o PRUEBA.php, por ejemplo, dando como idénticas URL como example.com/PRUEBA.php.

Podemos aplicar esta otra regla para que solo afecte a las búsquedas en cuanto al tamaño de caja:

CheckCaseOnly on

Apache devolverá archivos como si el sistema operativo en el que estamos soporte Case insensitive.

Usando mod_rewrite

Convertir con un mod_rewrite las URL solicitadas por el servidor, puede ser una opción que podrías usar para transformarlas antes de procesarlas.