¿Por qué HTACCESS RewriteCond %{HTTP_COOKIE} solo para php y no funciona para html?

¿Por qué HTACCESS RewriteCond %{HTTP_COOKIE} solo para php y no funciona para html?

Estaba intentando redirigir todos los accesos directos en mi subcarpeta usando este código

RewriteEngine on

RewriteCond %{HTTP_COOKIE} !user_cookie=[^;]
RewriteRule .* http://webhost.org/ [R=301,L]

Me doy cuenta de que funcionaba sólo para archivos OHP pero no para otros archivos como HTML. Intenté acceder al enlace del archivo PHP y funciona como lo planeé, pero cuando accedo al otro archivo con .htmlextensión no redirige, como si estuviera ignorando la condición de .htaccess.

Soy nuevo en .htaccess. ¿Qué estoy haciendo mal?

Información del servidor:

  • nueva instalación de Vestacp
  • Apache/2.2.15 (CentOS 6 x64)

Respuesta1

El código que publicó no se aplica necesariamente a solicitudes "directas". Se aplica cuando una cookie no está configurada (es decir, no se envía de vuelta en el Cookieencabezado de la solicitud HTTP); esto no es lo mismo. (¿Presumiblemente está configurando una cookie de "sesión"? Sin embargo, la definición de "sesión" del navegador varía, por lo que estas cookies pueden terminar siendo máspersistentede lo que esperas.)

Si "funciona sólo para archivos PHP pero no para otros archivos como HTML", entonces es porque el navegador no envía el Cookieencabezado de solicitud HTTP para solicitudes a sus archivos PHP, por alguna razón. Tal vez sean los archivos PHP los que son "incorrectos" y el Cookie:encabezado debería enviarse, como ocurre con los archivos HTML.

La diferencia entre sus archivos PHP y HTML podría deberse al almacenamiento en caché, el dominio y/o la ruta URL. Esto no tiene nada que ver con tu .htaccessguión.

Para comprobar el "acceso directo", es más habitual comprobar si hay un Refererencabezado vacío. Sin embargo, este (y cualquier) método que utilice no será del todo confiable.

información relacionada