Quienes trabajan con WordPress y URL’s amigables en los permalinks seguramente habrán tenido que retocar pelear más de alguna vez el archivo .htaccess (hypertext access).
En el caso de las rewrite rules de WordPress lo que se hace es redirigir todas las peticiones al servidor web al archivo index.php, salvo que el archivo o la carpeta que se está solicitando en la URL exista realmente en el servidor, pues, de ser así, prevalecerá dicha condición:
Reglas de redirección de WordPress
En este caso se necesita tener activado el módulo rewrite.load de Apache
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Por otra parte, se establece que se trabajará en la raíz (document root) del servidor web, lo que se puede cambiar fácilmente modificando los parámetros RewriteBase y RewriteRule de una forma que sea coherente.
# el espacio entre el “.” y el “/” no es casual
RewriteBase /folder
RewriteRule . /folder/index.php [L]
Pero lo cierto es que a través del archivo .htaccess se puede hacer bastante más que redirigir URL’s
Habilitar la navegación del directorio
Options +Indexes
## bloquea algunos tipos de archivos para mostrar
IndexIgnore *.wmv *.mp4 *.avi
Deshabilitar la navegación del directorio
Options All -Indexes
Personalizar mensajes de error
ErrorDocument 403 /forbidden.html
ErrorDocument 404 /notfound.html
ErrorDocument 500 /servererror.html
Hacer que los SSI trabajen con HTML/SHTML
AddType text/html .html
AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .shtml
# AddHandler server-parsed .htm
Cambiar la página por defecto (en el siguiente orden)
DirectoryIndex mihome.htm index.htm index.php
Bloquear el acceso al sitio a ciertas IP
order deny,allow
deny from 202.54.122.33
deny from 8.70.44.53
deny from .spammers.com
allow from all
Permitir el acceso sólo a usuarios de la red local (LAN)
order deny,allow
deny from all
allow from 192.168.0.0/24
Redireccionar visitantes a Nueva Página/Carpeta
Redirect viejapagina.html http://www.midominio.com/nuevapagina.html
Redirect /viejacarpeta http://www.midominio.com/nuevacarpeta/
Bloquear el acceso al sitio a ciertas referencias
RewriteEngine on
RewriteCond %{HTTP_REFERER} site-to-block\.com [NC]
RewriteCond %{HTTP_REFERER} site-to-block-2\.com [NC]
RewriteRule .* – [F]
Bloquear el acceso a nuestros ficheros desde otros servidores (Hot Linking)
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?midominio.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ – [F]
Mostrar un mensaje cuando se acceda desde otros sevidores a nuestros ficheros
Agrega la siguiente línea al código para bloquear el acceso a nuestros ficheros desde otros servidores
RewriteRule \.(gif|jpg)$ http://www.midominio.com/no_robes.gif [R,L]
Hacer invisible el archivo .htaccess (o cualquier otro)
order allow,deny
deny from all
Evitar el error 500
# Avoid 500 error by passing charset
AddDefaultCharset utf-8
Conceder el acceso CGI a una carpeta
Options +ExecCGI
AddHandler cgi-script cgi pl
# To enable all scripts in a directory use the following
# SetHandler cgi-script
Cambiar la extensión del script
AddType application/x-httpd-php .gne
gne será ahora tratado cómo un archivo PHP, se puede hacer lo mismo con x-httpd-cgi para archivos CGI, etc.
Ahorrar ancho de banda
Unicamente si utilizas PHP
php_value zlib.output_compression 16386
Apagar las magic_quotes_gpc
Solamente si utilizas PHP
php_flag magic_quotes_gpc off
Referencias
- http://enespanol.com.ar/2006/04/03/tutorial-de-htaccess/
- http://www.desarrolloweb.com/manuales/htaccess-para-urls-amigables.html
- http://www.desarrolloweb.com/articulos/pasar-url-a-buscadores-con-rewriterule.html
- http://www.desarrolloweb.com/articulos/introduccion-htaccess.html