As vezes necessitamos fazer redirecionamentos de URL(s) em nosso domínio web para efetuar tratamentos condicionais de necessidades diversas.

Para isso temos o modulo “rewrite” do apache que efetua esta ação com estrema flexibilidade direto nos arquivos .htaccess do nosso servidor web.

Este assunto é bem extenso e creio que vocês querem um conteúdo mais prático da coisa, então vou postar aqui algumas maneiras configurar o seu arquivo .htaccess para que ele manipule URL(s) no servidor web.

Redirecionando Tudo para um arquivo expecífico



#===========================
# Liga o modulo do apache
#===========================
RewriteEngine on

# Redireciona para o Painel de Controle do Sistema.
RewriteRule (admin)$ /panel.php [L]
RewriteRule (admin/)$ /panel.php [L]
RewriteRule (admin/)(.*)$ /panel.php [L]

RewriteRule (painel)$ /panel.php [L]
RewriteRule (painel/)$ /panel.php [L]
RewriteRule (painel/)(.*)$ /panel.php [L]

# Redireciona tudo para o index.php
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)([?/])$ index.php [L]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]

Redirecionando tudo para um único host


#===========================
# Liga o modulo do apache
#===========================
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.host.com.br [NC,OR]
RewriteCond %{SERVER_NAME} !^www.host.com.br [NC]
RewriteRule (.*) http://www.host.com.br/$1 [R]

Negando acesso a arquivos requisitados por outros sites


#===========================
# Liga o modulo do apache
#===========================
RewriteEngine on

RewriteCond %{HTTP_REFERER} != ""
RewriteCond %{HTTP_REFERER} != !^http://meu-web-site.com.br/.*$ [NC]
RewriteRule \.(jpg|gif|png|swf|js)$ - [F]

Agregando www. a suas requisições


#===========================
# Liga o modulo do apache
#===========================
RewriteEngine on

RewriteCond %{HTTP_HOST} ^meu-web-site.com.br [NC]
RewriteRule ^(.*)$ http://www.meu-web-site.com.br/$1 [r=301,NC]

RewriteCond %{HTTP_HOST} !^www
RewriteRule ^(.*) http://www.%{HTTP_HOST} [R]

Redirecionando tudo vier da porta 80


#===========================
# Liga o modulo do apache
#===========================
RewriteEngine on

RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*) http://%{SERVER_NAME}/$1 [R,L]

Redirecionando para outro lugar


Redirect /admin http://www2.meu-web-site.com.br/paine/controle