htaccess - redirecionar com base na origem da solicitação

2

Por favor me ajudem aqui. Eu gostaria de usar o .htaccess para redirecionar com base na origem da solicitação, por exemplo:

Solicitações do usuário:

http://www.domain.com/subfolder/

E deve ser redirecionado para:

http://www.domain.com/

Isso é muito simples de realizar, MAS na página inicial há um link para:

http://www.domain.com/subfolder/ 

E deve funcionar apenas QUANDO o pedido vem desse link.

Em outras palavras, meu objetivo é forçar todos os usuários a acessar a página inicial ANTES de outros URLs, mesmo que eles saibam o URL da página (marcado ou não) e válido.

É possível?

    
por Euler Kernighan 07.11.2015 / 08:10

1 resposta

0

É possível, mas não há garantia de 100% de taxa de sucesso. O mais fácil seria usar o cabeçalho $ {HTTP_REFERER}. O problema é que os usuários podem desativar isso em seus navegadores e alguns bots não o enviam. Isso é mais adequado para a lógica do aplicativo usando sessões.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://www\.domain\.com/?$
RewriteCond ${REQUEST_URI} !^/$
RewriteRule ^(.*)$ http://www.domain.com/ [L,R=301]

Na segunda linha, o $ é a parte importante. Ele só será igual se não houver nada após o .com ou .com / A terceira linha é apenas uma correspondência padrão para o root request_uri. Por favor, note ambas as condições têm o! operador, o que significa que se o referenciador não combina link

Tente isso e me avise.

    
por 07.11.2015 / 08:37