Post Actualizado en julio 25, 2013
¿Qué es el el .htaccess?
Es un archivo del Apache web server, es muy util ya que sirve hacer modificaciones en nuestra página web . Me di a la tarea de investigar 10 formas cambios que puedes hacer en tu web con .htaccess. Recuerda hacer un respaldo de tu archivo .htaccess antes de hacer cualquier cambio. Eliminar el www de […]
Es un archivo del Apache web server, es muy util ya que sirve hacer modificaciones en nuestra página web . Me di a la tarea de investigar 10 formas cambios que puedes hacer en tu web con .htaccess. Recuerda hacer un respaldo de tu archivo .htaccess antes de hacer cualquier cambio.
Eliminar el www de la URL
Para el SEO de tu pagina web quizás necesites eliminar añadir el prefijo www a la URL. A que estes buscando el posicionamiento como hola .com o www.hola.com. En el siguiente ejemplo para eliminar el www, re direccionando cualquier url con www hacia una versión sin el prefijo.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^your-site.com$ [NC]
RewriteRule ^(.*)$ http://your-site.com/$1 [L,R=301]
Fuente: http://css-tricks.com/snippets/htaccess/www-no-www/
Evitar el hotlinking
El hotlinking es una práctica muy común, esta consiste en utilizar imágenes alojadas en otra página web en otro sitio. Realmente esta acción, puede ser molesta para el dueño de la página y de la imagen. Cuando un usuario hace hotlink en una imagen nuestra, está utilizando nuestro ancho de banda y nuestro hosting para su beneficio puede que él no lo sepa sin embargo nos esta perjudicando. Para evitar el hotlink se deben añadir al .htaccess los siguientes códigos, reemplazando con nuestra información y removiendo el numeral # que antecede cada línea una vez que ha sido modificada.
RewriteEngine On
#Replace ?mysite.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+.)?mysite.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Replace /images/nohotlink.jpg with your "don't hotlink" image url
RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
Redireccionar los feeds de WordPress a Feedburner
Cuando utilizas el servicio de Feedburner en WordPress necesitaras que todos los feeds sean dirigidos al servicio en cuestión ya que la antigua dirección del feeds de WordPress queda disponible (tublog.com/feed). Para lograr esto es necesario modificar nuestros datos y colocarlos en nuestro .htaccess:
<IfModule mod_alias.c>
RedirectMatch 301 /feed/(atom|rdf|rss|rss2)/?$ http://feedburner.com/yourfeed/
RedirectMatch 301 /comments/feed/(atom|rdf|rss|rss2)/?$ http://feedburner.com/yourfeed/
</IfModule>
Crear páginas de error personalizadas
Sabemos que las viejas páginas de error son molestas. Es posible crear algunos archivos .html para lograr personalizar cada error de un modo un poco más creativo. Simplemente hay que añadir las siguientes líneas al .htaccess con la ruta a cada página personalizada.
ErrorDocument 400 /errors/badrequest.html
ErrorDocument 401 /errors/authreqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/serverr.html
Forzar la descarga de ciertos archivos
Cuando ofreces el servicio de archivos como .mp3 o .xls en la descarga de tu página web, se puede forzar la descarga en vez de permitir que el navegador decida qué hacer. Con este snippet se fuerza la descarga de los archivos .xls y .eps. Se puede modificar para cualquier extensión.
<Files *.xls>
ForceType application/octet-stream
Header set Content-Disposition attachment
</Files>
<Files *.eps>
ForceType application/octet-stream
Header set Content-Disposition attachment
</Files>
Crear archivo de errores PHP
Este snippet proporciona una opción interesante de almacenamiento de los errores de PHP en un archivo. Debemos crear el archivo php_error.log y subirlo a nuestro servidor, luego agregar las siguientes líneas a nuestro .htaccess. No olvides modificar la línea con la ruta al log de errores.
# display no errs to user
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# log to file
php_flag log_errors on
php_value error_log /location/to/php_error.log
Eliminar la extensión de los archivos de las URLs
Las extensiones de archivo son necesarias para los desarrolladores, pero para los visitantes de tu web no es estético estarlas viendo. Con este codigo puedes remover las extensiones .html. Se puede adaptar para otras extensiones.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html
# Replace html with your file extension, eg: php, htm, asp
Impedir el listado del directorio
En el servidor web Apache, cuando un directorio no tiene un archivo index se hace una lista automática de los archivos incluidos en el directorio en cuestión. Si deseamos evitar esta acción para que no se vean los archivos, debemos añadir:
Options -Indexes
Comprimir información estática para hacer más ligera la página web
Si pensaste que enviar información comprimida a los visitantes era imposible, aquí te decimos como. Este código ayuda a ahorrar ancho de banda y reduce el peso de las páginas.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Añadir automáticamente charset UTF-8 a los archivos
Para prevenir problemas de codificación indicando el charset desde el .htaccess, aseguras que todos los archivos tenga el charset adecuado.
<FilesMatch ".(htm|html|css|js)$">
AddDefaultCharset UTF-8
</FilesMatch>
Fuente: