Jump to content


Photo

[Resolvido] Redirecionamento Inteligente


  • Faça o login para participar
2 replies to this topic

#1 Rodrigo Preihsner

Rodrigo Preihsner

    Turista

  • Usuários
  • 47 posts
  • Sexo:Não informado

Posted 04/05/2010, 16:43

Boa tarde pessoal estou com um problema e gostaria de uma ajuda, tenho um site que vou chama-lo de sitehost.com e preciso de uma solução para o redirecionamento.

Andei vendo que a globo usa um redirecionamento assim:

Eles anunciam www.g1.com.br/jn e quando você entra fica http://g1.globo.com/jornal-nacional/

Preciso colocar no meu site de exemplo assim:

www.sitehost.com/hospedagem ele manda para www.sitehost.com/pg=hospdagem
www.sitehost.com/suporte ele manda para www.suporte.sitehost.com/clientes

e assim por diante, mas preciso de diversos redirecionamento na raiz do www.sitehost.com, que conforme ou criando situações ele vai obedecendo o que o usuario coloca no navegador.

Alguma dica.
Obrigado.
...

#2 Alexx Ares

Alexx Ares

    Doutor

  • Usuários
  • 921 posts
  • Sexo:Masculino
  • Localidade:Santos - SP

Posted 06/05/2010, 03:47

Cria um .htaccess na raiz e um index.php, no seu "sitehost.com".

No htaccess:

RewriteEngine On

RewriteCond   %{REQUEST_URI}   !^/index.php$

RewriteRule   ^/?.*/?$   index.php   [L]

Sendo que assim TUDO que for solicitado vai para o index.php, então algumas coisas podem ser evitadas e tratadas normalmente... por exemplo, se quiser deixar o "favicon.ico", "robots.txt" e a pasta "img" com acesso normal, adicione essas linhas:

RewriteCond %{REQUEST_URI} !^/img/.*$
RewriteCond %{REQUEST_URI} !^/favicon.ico$
RewriteCond %{REQUEST_URI} !^/robots.txt$

Ok? Assim tudo vai para seu index.php, e agora nele tratamos os acessos... a primeira coisa a fazer é o PHP "ver" o endereço solicitado, assim:

$uri = $_SERVER["REQUEST_URI"];

Agora, a partir da URI (que é o endereço digitado / acessado menos o host), você define algumas regras, por exemplo, se for solicitado "/hospedagem" manda para "www.sitehost.com/pg=hospdagem" (no caso, vou considerar que isso abre o arquivo "hospedagem.php" dentro do "sitehost.com") e se for solicitado "/suporte" manda para "www.suporte.sitehost.com/clientes" (esse seria um redirecionamento para outro site)....

De uma forma bem simples, seria algo assim:

<?php

$uri = $_SERVER["REQUEST_URI"];

if($uri=="/" OR $uri="/index.php"){                                // Página de entrada, raiz ou "index.php"
    echo "Bem vindo!!";                                            // Mostra algo, página inicial
} else if($uri=="/hospedagem"){                                    // Solicitou "hospedagem"
    include "hospedagem.php";                                      // abre o arquivo "hospedagem.php"
} else if($uri=="/suporte"){                                       // Solicitou "suporte"
    header("Location:http://www.suporte.sitehost.com/clientes");   // Redireciona para endereço externo
} else {                                                           // Qualquer outra coisa não listada  
    echo "Página não encontrada";                                  // Página de erro! 
}

?>

Acho que a partir desse exemplo bem simples você consiga criar regras e estruturar seu site da maneira que deseja.

:D (y)
||| PENSE NISSO ||| O ser humano, dizem, deve dormir 8 horas por dia. Isso equivale a 1 terço do seu dia dormindo. Agora imagine a seguinte situação: você, com 75 anos, prestes a morrer, olha para trás e percebe que dormiu 1 terço da sua vida, ou seja, 25 anos. Cara... 25 ANOS DORMINDO !!! Se você tem menos de 25 anos, simplesmente você vai dormir mais do que viveu até hoje!!! Pense nisso... e durma menos.

#3 Rodrigo Preihsner

Rodrigo Preihsner

    Turista

  • Usuários
  • 47 posts
  • Sexo:Não informado

Posted 06/05/2010, 10:06

Cria um .htaccess na raiz e um index.php, no seu "sitehost.com".

No htaccess:

RewriteEngine On

RewriteCond   %{REQUEST_URI}   !^/index.php$

RewriteRule   ^/?.*/?$   index.php   [L]

Sendo que assim TUDO que for solicitado vai para o index.php, então algumas coisas podem ser evitadas e tratadas normalmente... por exemplo, se quiser deixar o "favicon.ico", "robots.txt" e a pasta "img" com acesso normal, adicione essas linhas:

RewriteCond %{REQUEST_URI} !^/img/.*$
RewriteCond %{REQUEST_URI} !^/favicon.ico$
RewriteCond %{REQUEST_URI} !^/robots.txt$

Ok? Assim tudo vai para seu index.php, e agora nele tratamos os acessos... a primeira coisa a fazer é o PHP "ver" o endereço solicitado, assim:

$uri = $_SERVER["REQUEST_URI"];

Agora, a partir da URI (que é o endereço digitado / acessado menos o host), você define algumas regras, por exemplo, se for solicitado "/hospedagem" manda para "www.sitehost.com/pg=hospdagem" (no caso, vou considerar que isso abre o arquivo "hospedagem.php" dentro do "sitehost.com") e se for solicitado "/suporte" manda para "www.suporte.sitehost.com/clientes" (esse seria um redirecionamento para outro site)....

De uma forma bem simples, seria algo assim:

<?php

$uri = $_SERVER["REQUEST_URI"];

if($uri=="/" OR $uri="/index.php"){                                // Página de entrada, raiz ou "index.php"
    echo "Bem vindo!!";                                            // Mostra algo, página inicial
} else if($uri=="/hospedagem"){                                    // Solicitou "hospedagem"
    include "hospedagem.php";                                      // abre o arquivo "hospedagem.php"
} else if($uri=="/suporte"){                                       // Solicitou "suporte"
    header("Location:http://www.suporte.sitehost.com/clientes");   // Redireciona para endereço externo
} else {                                                           // Qualquer outra coisa não listada  
    echo "Página não encontrada";                                  // Página de erro! 
}

?>

Acho que a partir desse exemplo bem simples você consiga criar regras e estruturar seu site da maneira que deseja.

:D (y)



È isso ae, funcionou, muito obrigado.
(y)
...




2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq