.htaccess
basics
- mantén el fichero .htaccess tan pequeño como pueda ser
- comenta y organiza correctamente el fichero .htaccess
- añade la opción [L] a las páginas finales, para decirle al servidor que no procese más reglas - como en hotlinking
- el fichero .htaccess tienen herencia en las carpetas, ojo con el fichero en el raiz
- variables MOD_REWRITE:
acceso directorios
control de acceso a carpetas
- denegar acceso total a carpeta:
deny from all
- denegar acceso total, excepto determinada IP o rango:
deny from all allow from x.x.x.x allow from y.y.y.y/x
- denegar acceso a un archivo:
<Files fichero.extension> order allow,deny deny from all </Files>
listado de carpetas
- carpetas navegables:
Options +Indexes +MultiViews +FollowSymlinks
- más opciones para las carpetas navegables:
IndexOptions FancyIndexing
- prevenir el listado de carpetas:
IndexIgnore *
negar petición
niega cualquier conexión desde cualquier sitio
deny from all
negar indices
no muestra listado de ficheros
Options -Indexes Indexignore *
varios
activar compresión
- activar compresión de datos inherente a PHP:
php_value zlib.output_compression 16386
Escondiendo archivos
- usando la directiva
Files
sobre el fichero a ocultar y:order allow,deny deny from all satisfy all
páginas de error 404 personalizadas
ErrorDocument 404 /errores/noencontrado.html
- que la página tenga más de 512 bytes para evitar la «funcionalidad» de Internet Explorer de sustituir por una página propia las que pesan menos de eso
otros
cambiar el fichero que abre o busca por defecto
Directoryindex index.php index2.php
esconder la extensión del lenguaje de scripting
es necesario renombrar los ficheros a la nueva extensión
# Make PHP code look like unknown types AddType application/x-httpd-php .cool
server side includes
permite contenido dinámico dentro de páginas estáticas que se intepretan por el servidor http://httpd.apache.org/docs/2.2/howto/ssi.html para hacerlo sobre páginas con extensión .shtml (por no mezclar con las .html, aunque se puede y puede que sea más sencillo si tienes algo en marcha):
Options +Includes AddType text/html .shtml AddOutputFilter INCLUDES .shtml AddHandler server-parsed .shtml # ?
protección directorio
basic
debe estar habilitado el auth_basic.load
en /etc/apache2/mods-enabled
AuthName "Directorio privado" AuthType Basic AuthUserFile .htpasswd require valid-user
- el fichero .htpasswd he de tener ruta absoluta o relativa al ServerRoot
- se puede proteger un archivo, poniendo el código dentro de una directiva
Files
Digest
debe estar habilitado el auth_digest.load
en /etc/apache2/mods-enabled