
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 .html
extensió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 Cookie
encabezado 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 Cookie
encabezado 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 .htaccess
guión.
Para comprobar el "acceso directo", es más habitual comprobar si hay un Referer
encabezado vacío. Sin embargo, este (y cualquier) método que utilice no será del todo confiable.