Ejemplos de funcionalidad del mod rewrite
Redirecciona un dominio antiguo a uno nuevo
# Redirect all pages from olddomain.com # to newdomain.com Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www.olddomain.com$ [OR] RewriteCond %{HTTP_HOST} ^olddomain.com$ RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
#Prevent subfolder loading. This goes # in htaccess for the primary domain RewriteCond %{HTTP_HOST} ^primary\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.primary\.com$ RewriteRule ^addon\.com\/?(.*)$ "http\:\/\/www\.addon\.com\/$1" [R=301,L]
Nunca usar www
# Never use www in the domain # Replace 'example.com' with your domain name RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?example\.com)$ [NC] RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]
Usar siempre www en los dominios
# Always use www in the domain # Replace 'example.com' with your domain name RewriteEngine on RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.com$ [NC] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule .? http://www.%1example.com%{REQUEST_URI} [R=301,L]
Definir la carpeta por defecto
# Set a default home directory, (this subfolder always loads) # Replace 'folder' with your subfolder name <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^$ /folder/ [R=301,L] </IfModule>
Redirect Folder Access
# Rename a directory and force visitors to the new name # Replace 'old' with your old folder name # Replace 'new' with your new folder name RewriteEngine on RewriteRule ^/?old([a-z/.]*)$ /new$1 [R=301,L]
Forzar http:
# Always use https for secure connections # Replace 'www.example.com' with your domain name # (as it appears on your SSL certificate) RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Bloquer el trafico de multiples referers
# Block traffic from multiple referrers RewriteEngine on Options +FollowSymlinks RewriteCond %{HTTP_REFERER} badsite\.com [NC,OR] RewriteCond %{HTTP_REFERER} badforum\.com [NC,OR] RewriteCond %{HTTP_REFERER} badsearchengine\.com [NC] RewriteRule .* - [F]
Impedir que se suban determinados archivos
#Do not allow these file types to be called RewriteEngine on RewriteRule .*\.(jpg|jpeg|gif|png|bmp|exe|swf)$ - [F,NC]
Eliminar index.php de la url
Options +FollowSymLinks -MultiViews -indexes RewriteEngine On RewriteBase / # remove index RewriteCond %{THE_REQUEST} /index(\.php)?[\s?/] [NC] RewriteRule ^(.*?)index(/|$) /$1 [L,R=301,NC,NE]
Eliminar .php de la url
Options +FollowSymLinks -MultiViews -indexes RewriteEngine On RewriteBase / # remove .php; use THE_REQUEST to prevent infinite loops RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP RewriteRule (.*)\.php$ $1 [L,R=301]
Eliminar index y /
Options +FollowSymLinks -MultiViews -indexes RewriteEngine On RewriteBase / # remove index RewriteRule (.*)/index$ $1/ [R=302] # remove slash if not directory RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} /$ RewriteRule (.*)/ $1 [R=301,L]
Fuente:http://support.hostgator.com/articles/apache-mod_rewrite-and-examples