Por que HTACCESS RewriteCond% {HTTP_COOKIE} apenas para php e não funciona para html?

1

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]

Eu percebi que estava funcionando apenas para arquivos OHP, mas não para outros arquivos, como HTML. Tentei acessar o link para o arquivo PHP e ele funciona como planejei, mas quando estou acessando o outro arquivo com .html extension ele não redireciona, como se estivesse ignorando a condição de .htaccess .

Sou novo em .htaccess . O que estou fazendo de errado?

Informação do servidor:

  • nova instalação do Vestacp
  • Apache / 2.2.15 (CentOS 6 x64)
por MyFault 13.12.2017 / 17:20

1 resposta

0

O código que você postou não se aplica necessariamente a solicitações "diretas". Aplica-se quando um cookie não está definido (ou seja, não é enviado de volta no cabeçalho da solicitação Cookie 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 mais persistentes do que você espera.)

Se estiver "trabalhando apenas para arquivos PHP, mas não para outros arquivos, como HTML", é porque o navegador não está enviando o cabeçalho de solicitação Cookie HTTP para solicitações para seus arquivos PHP - por algum motivo. Talvez os arquivos PHP estejam "incorretos" e o cabeçalho Cookie: esteja sendo enviado - como para arquivos HTML?

A diferença entre seus arquivos PHP e HTML pode estar no cache, no domínio e / ou no caminho do URL. Isso não tem nada a ver com o seu script .htaccess .

Para verificar "acesso direto", é mais comum verificar se há um cabeçalho Referer vazio. No entanto, este (e qualquer) método que você usa não será totalmente confiável.

    
por 13.12.2017 / 19:27