Estoy usando xampp para probar un código php.
En el directorio principal del proyecto, tengo el siguiente archivo .htaccess:
RewriteEngine on #Index RewriteCond %{REQUEST_FILENAME} ^/$ RewriteRule request_handler.php [L] #php files RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} ^.*(\.php)$ RewriteRule . request_handler.php [L] #Blocked files. PHP blocked files should be specified in request_handler.php <Files "setup.json"> Order Allow,Deny Deny from all </Files> <Files "testimonials.json"> Order Allow,Deny Deny from all </Files> #CACHE CONTROLL FOR STATIC RESOURSES <FilesMatch "\.(jpg|jpeg|png|gif|swf)$"> Header set Cache-Control "max-age=2592000, public" </FilesMatch>De todos modos, estoy recibiendo un 403 inesperado prohibido en todas mis solicitudes. Sin embargo, si elimino la primera línea del archivo .htaccess, dejo de tener ese comportamiento inesperado.
¿Alguien sabe qué puede estar causando este error?
ACTUALIZAR Creé un nuevo archivo .htaccess, que solo contiene una línea: RewriteEngine On y todavía recibo el error. (Si elimino esa línea, dejo de recibir el error). La sola presencia de esa línea provoca el error.
Resulta que todo lo que tenía que hacer era agregar la línea Options FollowSymLinks antes de la directiva RewriteEngine On .
Esto es lo que Apache tiene que decir:
Para habilitar el motor de reescritura en este contexto, debe configurar "RewriteEngine On" y las "Opciones FollowSymLinks" deben estar habilitadas. [...] Esta restricción es necesaria por razones de seguridad.