lms
Administrador
- Mensajes
- 7.741
- Puntuación de reacciones
- 2.163
- Puntos
- 2.613
- Sitio web
- xenfacil.com
- Versión de XenForo
- 2.1.x
- Página web
- Web
¿Cómo se configura el fichero ‘.htaccess‘? Me he guiado por esta página que se guía por este tutorial.
Ahora vamos a ver unos cuantos ‘trucos’ para configurar estos archivos:
Ahora vamos a ver unos cuantos ‘trucos’ para configurar estos archivos:
- Página por defecto que se ejecutará al acceder a la raíz del servidor:
Insertar CODE, HTML o PHP:DirectoryIndex index.html index.php index.htm
- Página de error por defecto a la que se redirigen todos los errores 404:
Insertar CODE, HTML o PHP:ErrorDocument 404 /miPaginaDeError.html
- Controlar el acceso a archivos y directorios, permitiendo o denegando dicho acceso. Situando un archivo ‘.htaccess’ en una carpeta con este contenido, se bloqueará a todo el mundo el acceso a la misma y a todos sus archivos:
Insertar CODE, HTML o PHP:# Bloquear el acceso a todo el mundo deny from all
Insertar CODE, HTML o PHP:# Bloquear el acceso a todo el mundo order deny,allow deny from all # Dirección a la que si le vamos a permitir acceder allow from 192.168.0.0/24
Insertar CODE, HTML o PHP:order allow,deny # Dirección que queremos bloquear deny from 192.168.0.0/24 # Permitir el acceso al resto allow from all
- Modificar las variables de entorno, permitiendo agregar (‘setenv’) o eliminar (‘UnSetEnv’) ciertas variables:
Insertar CODE, HTML o PHP:#Añadir nueva variable SetEnv SITE_WEBMASTER "Developando" SetEnv SITE_WEBMASTER_URI mailto:ideas@developando.com #Eliminar variable UnSetEnv REMOTE_ADDR
- Redicciones permanentes (301) de una página a otra dentro de un mismo servidor. Para ello añadir la siguiente línea:
Insertar CODE, HTML o PHP:#Redirect <codigo> <url_antigua> <nueva URL> Redirect 301 /antiguo/index.html http://miDominio.com/nuevo/index.html
Insertar CODE, HTML o PHP:#Redirect <codigo> <url_antigua con patrón> <nueva URL> RedirectMatch 301 /blog(.*) http://yourdomain.com/$1
- Configurar la caché de archivos, configurando el tipo de archivo que se quiere cachear y el tiempo que dichos contenidos deben permanecer en la caché antes de ser consultados de nuevo:
Insertar CODE, HTML o PHP:# Mantener en caché durante un año <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$"> Header set Cache-Control "public" Header set Expires "Thu, 25 Apr 2014 12:00:00 GMT" Header unset Last-Modified </FilesMatch> # Mantener en caché durante 2 horas <FilesMatch "\.(html|htm|xml|txt|xsl)$"> Header set Cache-Control "max-age=7200, must-revalidate" </FilesMatch> # SetOutputFilter DEFLATE indica que se deben comprimir los contenidos <FilesMatch "\.(js|css)$"> SetOutputFilter DEFLATE Header set Expires "Thu, 25 Apr 2014 12:00:00 GMT" </FilesMatch>
- Comprimir la salida utilizando GZIP. Añadiendo la siguiente configuración, se indicará que todos los archivos css,js y html se compriman:
Insertar CODE, HTML o PHP:# El módugo mod_gzip deberá estar habilitado en el servidor <IfModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </IfModule>
- Rerigir los buscadores a https (SSL):
Insertar CODE, HTML o PHP:RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
- Reescriturar las URLs. Por ejemplo, para usar url amigables, al servidor le llegaría una petición con dicha url y esta debería entenderse como la direccion interna que tiene en el servidor. Por ejemplo:
Insertar CODE, HTML o PHP:# Dirección a la que se está accediendo -> http://www.midominio.com/detalle-producto-14.html # Dirección a la que se necesita cambiar -> http://www.midominio.com/detalles.php?id=14 RewriteEngine on RewriteRule ^detalle-producto-([0-9]+)\.html$ detalles.php?id=$1
Insertar CODE, HTML o PHP:# Dirección a la que se está accediendo -> midominio.com/ # Dirección a la que se necesita cambiar -> http://www.midominio.com/ RewriteEngine On RewriteCond %{HTTP_HOST} ^midominio\.com$ RewriteRule (.*) http://www.midominio.com/$1 [R=301,L]
- Evitar el acceso al listado de archivos de una carpeta añadiendo una de las siguientes líneas
Insertar CODE, HTML o PHP:# Para bloquear el listado añadir una de estas dos líneas Options -Indexes IndexIgnore *
- Añadir nuevos MIME-TYPES para evitar problemas en la descarga de archivos con mimeType desconocido:
Insertar CODE, HTML o PHP:AddType application/x-endnote-connection enz AddType application/x-endnote-filter enf AddType application/x-spss-savefile sav
- Denegar el acceso a archivos estáticos si el origen no es por un gestor de contenidos interno como ‘wordpress’ o está vacío:
Insertar CODE, HTML o PHP:RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC] RewriteCond %{HTTP_REFERER} !^http://www.askapache.com.*$ [NC] RewriteRule \.(ico|pdf|flv|jpg|jpeg|mp3|mpg|mp4|mov|wav|wmv|png|gif|swf|css|js)$ - [F,NS,L]
- Limitar el tamaño máximo de los archivos que se pueden subir al servidor:
Insertar CODE, HTML o PHP:php_value upload_max_filesize 20M php_value post_max_size 20M php_value max_execution_time 200 php_value max_input_time 200
- Bloquear la ejecución de scripts:
Insertar CODE, HTML o PHP:Options -ExecCGI AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
- Cambiar la codificación y el lenguaje de las cabeceras:
Insertar CODE, HTML o PHP:AddDefaultCharset UTF-8 DefaultLanguage es-ES
- Configurar el TIMEZONE del servidor:
Insertar CODE, HTML o PHP:SetEnv TZ Europe/Madrid
- Forzar que aparezca la venta de “Guardar como” cuando se acceda a ciertos ficheros:
Insertar CODE, HTML o PHP:AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4
- Protección de un archivo individual. Si se quiere únicamente aplicar la configuración a un único archivo sin verse afectado el resto de contenidos del servidor, añadir estas líneas:
Insertar CODE, HTML o PHP:<Files miPagina.html> order deny,allow deny from all AuthType Basic AuthName "Usuario Auth" AuthLDAP on AuthLDAPServer ldap://listado.miDominio.com/ AuthLDAPBase "ou=Usuario, o=Developando company, c=au" require valid-user satisfy any </Files>
- Configuración de cookies. Crear cookie usando alguna de las variables de entorno:
Insertar CODE, HTML o PHP:Header set Set-Cookie "language=%{lang}e; path=/;" env=lang
Insertar CODE, HTML o PHP:RewriteEngine On RewriteBase / RewriteRule ^(.*)(de|es|fr|it|ja|ru|en)/$ - [co=lang:$2:.miDominio.com:7200:/]
- Envío de cabeceras:
Insertar CODE, HTML o PHP:Header set Content-Language "es-ES" Header set Vary "Accept-Encoding"
- Bloquear el acceso comparando por User-Agent que se recibe en las cabeceras de la petición:
Insertar CODE, HTML o PHP:SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT Deny from env=HTTP_SAFE_BADBOT