Archivo de la categoría: Apache

Forzar la descarga de un archivo en lugar de mostrarlo en el navegador

Forzar la descarga de un archivo en lugar de mostrarlo en el navegadorBien sea de forma nativa, bien sea por la instalación de algún complemento, los navegadores son capaces de mostrar una serie de archivos como imágenes, ficheros de texto, ficheros pdf, etc. En cambio, hay otros que por lo general son descargados directamente, como los ficheros comprimidos (zip, tar, gzip, rar, etc.). Lo que pretendemos en éste artículo es mostraros la manera de forzar la descarga de un archivo concreto, que por defecto se visualiza en el navegador. Sigue leyendo

Facebooktwittergoogle_plus

Mejorar el rendimiento de Apache optimizando AllowOverride

Mejorar el rendimiento de Apache optimizando AllowOverrideApache posee un fichero de configuración en el que le indican una serie de directivas. Estas directivas pueden ser modificadas en cada directorio gracias a la utilización de los ficheros .htaccess. Estos ficheros, por una parte nos ayudan a realizar configuraciones concretas para cada directorio, pero en cambio, reducen el rendimiento de Apache, ya que debe comprobar su existencia en cada directorio, y esto empeora aun mas cuando existen subdirectorios.

Por norma general, cuando necesitamos utilizar ficheros .htaccess, en el fichero de configuración de Apache, echaremos mano del sufrido:

AllowOverride All

Esto le indica a Apache que si encuentra cualquier fichero .htaccess por cualquiera de las carpetas, que lo lea e interprete, con el consiguiente empleo de recursos en analizar todas las carpetas en busca de alguno de estos ficheros.

Pero lo lógico sería indicar que Apache nos busque los ficheros .htaccess, únicamente en las carpetas donde los tengamos. Por ejemplo:

<Directory /ruta_a_mi_fichero_.htaccess>
   AllowOverride All
</Directory>

Gracias a esto evitaremos sobrecargar de trabajo innecesario a Apache y aumentaremos su rendimiento.

Facebooktwittergoogle_plus

Comprobar que Apache lee nuestro .htaccess

Comprobar que Apache lee nuestro .htaccessEs bastante habitual que nuestro sitio web, por la razón que sea, necesite utilizar un fichero .htaccess. Estos ficheros normalmente agregan alguna configuración especifica para nuestra web, como redirecciones, modificaciones de url (url’s limpias), protección de directorios, etc. La mayoría de CMS’s necesitan instalar ficheros .htaccess para sus correcto funcionamiento. En el caso de que exista algún error en nuestro sitio, tal vez sea producido por una mala implementación de este archivo. Aunque en caso de error, lo primero que podemos comprobar es si Apache es capaz de leer dicho fichero. Sigue leyendo

Facebooktwittergoogle_plus

Solucionar el error maximum execution time of …

Solucionar el error maximum execution time ofEn ocasiones, cuando programamos algún script, es posible que este, para su ejecución, necesite mas tiempo del que tiene predefinido.

En nuestra configuración de php, y dependiendo de cada servidor, este parámetro puede variar, y en el caso de que se agotara el tiempo asignado y no hubiese terminado la ejecución de nuestro código, obtendriamos un mensaje similar al siguiente: Sigue leyendo

Facebooktwittergoogle_plus

Personalizar la página de error 404

Puede darse el caso de que al acceder a alguna página de nuestro sitio web el usuario teclee mal la dirección, o bien, que simplemente la página que ha indicado no exista. En estos casos y por norma general, el servidor devolverá un mensaje de error 404. Sigue leyendo

Facebooktwittergoogle_plus

Apache 2.4.9 corrige dos vulnerabilidades detectadas

apache-logoAcaba de ser publicada Apache 2.4.9, una versión que corrige dos bugs encontrados en versiones anteriores. Los fallos detectados, aunque no suponen un riesgo grave, si que pueden comprometer la eficiencia del servidor, ya que permiten a un atacante, provocar condiciones de denegación de servicio.

Al parecer el primero de estos fallos reside en el módulo mod_log_config que no interpreta correctamente a las cookies truncadas. El segundo error lo provoca mod_dav, que calcula de forma incorrecta el final de una cadena, eliminando caracteres especiales de esta.

Como hemos indicado, desde Apache, se han corregido dichos fallos de seguridad y se ha lanzado la versión 2.4.9

Te recomendamos actualizar apache si administras tu vps con la utilidad yum o otro gestor de paquetes para otras distribuciones de linux.

Facebooktwittergoogle_plus

Ocultar las extensiones con .htaccess

Gracias al fichero .htaccess podemos modificar los enlaces internos de nuestro sitio web, eliminando sus extensiones, así conseguiremos unas urls “mas amigables”.

Por ejemplo, si tenemos en nuestro sitio web una página llamada http://miweb/contacto.php podremos acceder a ella tanto si indicamos “http://miweb/contacto” como si escribimos “http://miweb/contacto.php”

Para esto, deberemos recurrir al fichero de configuración .htaccess y añadirle el siguiente código:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Este código nos permite acceder a los ficheros .php tanto si indicamos su extensión como si lo no hacemos. En el caso de que nuestro sitio web utilizara ficheros .html, deberiamos sustituir la linea

RewriteCond %{REQUEST_FILENAME}\.php -f

por esta otra:

RewriteCond %{REQUEST_FILENAME}\.html -f

Comentar que la instrucción RewriteEngine depende del módulo mod_rewrite de Apache, y es necesario que esté instalado y activado. Por defecto esto es así la mayoría de las veces, pero para estar seguros lo mejor será crear un fichero “info” y revisar si tenemos dicho módulo instalado.

Crearemos el fichero con el siguiente código:

<?php
phpinfo();
?>

Guardaremos y lo ejecutaremos para comprobar la existencia del módulo mod_rewrite.

Ocultar las extensiones con .htaccess

Facebooktwittergoogle_plus

Conflicto entre Xampp y Skype por el puerto 80

Conflicto entre Xampp y Skype por el puerto 80Al parecer, existe un conflicto entre Xampp y Skype por la utilización del puerto 80.

Xampp es utilizado por muchos desarrolladores para probar su paginas web en local antes de publicarlas en Internet. Por norma general, Xampp y todos los servidores locales utilizan el puerto 80. El problema viene cuando otras aplicaciones también utilizan el mismo puerto, como es el caso de Skype.

En el caso de iniciar primero Xampp y despues Skype no habrá problema, y ambas aplicaciones funcionarán correctamente. Pero cuando iniciamos primero Skype y posteriormente Xampp, este no podra iniciar Apache, mostrándonos un error como el siguiente:

Conflicto entre Xampp y Skype por el puerto 80

Afortunadamente la solución es sencilla. Deberemos abrir Skype y acceder a Herramientas > Opciones. Pulsaremos sobre Avanzada y finalmente sobre Conexión. Allí, deberemos desmarcar la casilla Usar puertos 80 y 443 como alternativas para las conexiones entrantes.

Conflicto entre Xampp y Skype por el puerto 80

Guardaremos los cambios y reiniciaremos Skype. Una vez abierto Skype, abriremos Xampp y comprobaremos como efectivamente se ha iniciado Apache sin ningún problema.

Facebooktwittergoogle_plus

Redireccionamiento 301

Redireccionamiento 301En el caso de querer cambiar el nombre de dominio de nuestra web, necesitamos no perder a los posibles visitantes que accedan a nuestro antiguo dominio. Además, estos cambios pueden afectar negativamente a nuestro posicionamiento en Google.

Para evitar esto, deberemos utilizar un redireccionamiento 301. Esto es la mejor solución para mantener nuestro ranking en Google. Un código 301 será interpretado como “movido permanentemente“, con lo que se apuntará de manera automática al nuevo dominio. Para conseguir esto, utilizaremos .htaccess

Como redirigir del dominio viejo al nuevo

Como hemos comentado, debemos utilizar un archivo .htaccess ubicado en la raiz del dominio antiguo. Dicho fichero debe contener el siguiente código:

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.dominionuevo.com/$1 [R=301,L]

Con ello conseguiremos que cualquier acceso al antiguo dominio sea redirigido al dominio nuevo (sustituyendo dominionuevo por el nombre de tu dominio).

Para que esto funcione en tu servidor, deberás activar el modulo mod_rewrite de tu servidor Linux.

Facebooktwittergoogle_plus

Limitar el acceso a determinados archivos en Apache

Es muy frecuente que añadamos opciones extras en los ficheros .htaccess y .htpasswd de nuestro servidor. Estos ficheros como es lógico, no deseamos que estén disponibles a los usuarios. Por ello, vamos a utilizar las directivas Files y FilesMatch para denegar su acceso:

Para ello crearemos dentro del DocumentRoot una entrada en el .htaccess con el siguiente texto:

<Files ˜ "^.ht>
  Order allow,deny
  Deny from all
</Files>

Mediante Files conseguimos denegar el acceso a todos los ficheros que comienzan por los caracteres “.ht”

Podremos por ejemplo bloquear ciertos tipos de contenido. Para ello utilizaremos FilesMatch:

<FilesMatch "(.bak$|.BAK$)">
  Order allow,deny
  Deny from all
</FilesMatch>

Con esto evitaremos el acceso a los ficheros .bak, aunque se puede cambiar la extensión para adaptarnos a las necesidades del servidor.

Facebooktwittergoogle_plus