
Eu estava tentando redirecionar todo o acesso direto na minha subpasta usando este código
RewriteEngine on
RewriteCond %{HTTP_COOKIE} !user_cookie=[^;]
RewriteRule .* http://webhost.org/ [R=301,L]
Sei que estava funcionando apenas para arquivos OHP, mas não para outros arquivos como HTML. Tentei acessar o link do arquivo PHP e funciona como planejei, mas quando estou acessando o outro arquivo com .html
extensão ele não redireciona, como se estivesse ignorando a condição de .htaccess
.
Eu sou novo .htaccess
. O que estou fazendo de errado?
Informação do servidor:
- nova instalação do Vestacp
- Apache/2.2.15 (CentOS 6 x64)
Responder1
O código que você postou não se aplica necessariamente a solicitações "diretas". Aplica-se quando um cookie não é definido (ou seja, não é enviado de volta no Cookie
cabeçalho da solicitação HTTP) - isso não é a mesma coisa. (Presumivelmente você está configurando um cookie de "sessão"? No entanto, a definição de "sessão" do navegador varia, então esses cookies podem acabar sendo maispersistentedo que você espera.)
Se estiver "funcionando apenas para arquivos PHP, mas não para outros arquivos como HTML", é porque o navegador não está enviando o Cookie
cabeçalho de solicitação HTTP para solicitações aos seus arquivos PHP - por algum motivo. Talvez sejam os arquivos PHP que estão "incorretos" e o Cookie:
cabeçalho deveria estar sendo enviado - como para arquivos HTML?
A diferença entre seus arquivos PHP e HTML pode estar no cache, domínio e/ou caminho de URL. Isso não tem nada a ver com o seu .htaccess
script.
Para verificar o "acesso direto" é mais comum verificar se há um Referer
cabeçalho vazio. No entanto, este (e qualquer outro) método que você usar não será totalmente confiável.