El nombre de este fichero viene de Acceso a Hipertexto (Hypertext Access) tiene una gran cantidad de funcionalidades muy útiles para cualquier web, así que vamos a ver como funciona ya aprender algunas de las cosas que podemos hacer con el.
El .htaccess permite hacer ajustes personalizados y específicos para cada web de la configuración definida en el archivo de configuración principal de Apache (httpd.conf).
Resumen del Contenido
Lo primero es crear el fichero .htaccess
Vamos a crear un fichero en un editor de texto en tu computadora. Recomendamos que uses Bloc de Notas (Windows), SimpleText (Macintosh), o Emacs (Linux/UNIX).
Guardar el archivo como .htaccess (incluyendo el punto inicial).
Ten cuidado que tu editor de texto no agregue el sufijo .txt al nombre del archivo,.si esto ocurre, solamente tienes que renombrar el fichero.
Ten en cuenta que todas las reglas que definas en el .htaccess afectan al directorio y todos los subdirectorios donde lo coloques, con lo cual si quieres que afecte a toda la web lo debes colocar en el directorio raíz de la misma, aunque también puedes crearlo dentro de un subdirectorio concreto para que las reglas afecten solo al mismo.
Vamos a ver que podemos hacer con el .htaccess
El fichero .htaccess ofrece una gran cantidad de posibilidades, a continuación veremos los usos más frecuentes.
Protege con contraseña archivos, directorios…
Mostrar páginas de error personalizadas
Crear URLs amigables
Evitar el hotlink, no permitir que alguien coja imágenes de tu sitio y lo sobrecargue
Controlar la cache de archivos para mejorar la velocidad de transferencia
Forzar el uso de las www, nuestro dominio siempre aparecerá con las www
Redirecciones a través de mod_rewrite, puede ser muy útil para no perder enlaces antiguos, redirigir una página completa…
Cambiar parámetros de php a través de htaccess
Para cambiar parámetros de php a través del fichero .htaccess tiene que seguir la siguiente estructura de directiva:
php_value nombre de la directiva valor(xx)
- Modificar memory limit: php_value memory_limit xxM
- Modificar tamaño de archvidos a subir: php_value upload_max_filesize xxM
- Modificar tamaño máximo POST HTTP: php_value post_max_size xxM
- Modificar tamaño input vars: php_value max_input_vars xxxx
Redirigir su web sin Certificado (http://) a su web con certificado (https://)
RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Redirigir su web sin www a su web con www
RewriteEngine On RewriteCond %{HTTP_HOST} ^tusitio.com RewriteRule (.*) http://www.tusitio.com/$1 [R=301,L]
Redirigir su web con www a su web sin www
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.tusitio.com [NC] RewriteRule ^(.*)$ http://tusitio.com/$1 [L,R=301]
Restringir acceso a fichero
<files fichero-a-proteger.php> order allow,deny deny from all </files>
Proteger archivo .htaccess
<Files .htaccess> Order allow,deny Deny from all </Files>
Evitar que roben imágenes()
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?tusitio.com/.*$ [NC] RewriteRule .(jpg|jpeg|gif|png|bmp)$ - [F]
Restringir Acceso de ip
order allow, deny deny from 123.4.5.6 deny from 123.45.6.8 deny from 178.0.0.0 allow from all
Activar compresión Gzip
<IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML and fonts AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml # Remove browser bugs (only needed for really old browsers) BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent </IfModule>
Aumentar el tamaño máximo de subida de ficheros
php_value upload_max_filesize XXM php_value post_max_size XXM
Iremos publicando distintos posts con ejemplos de como usar todas estas funcionalidades y con alguno mas que puede ser interesante.