Fallo en htaccess regax

Fallo en htaccess regax

Estoy intentando enviar todas las solicitudes al servidor para ir al archivo index.php con la información de la solicitud.

Además, quiero evitar el acceso directo al archivo index.php.

La segunda parte funciona bien pero no puedo hacer la primera por alguna razón.

  #If the request is for index - prevent from accessing the file directly
    RewriteRule ^(.*)index\.php(.*)$ - [F,L]

#If the request if not for the receiver - redirect to the api server
#RewriteCond !^(*.)campaigns/(\d+)/pictures(.*)$ [NC]
RewriteRule  index.php?request=$1 [NC,QSA,L]

¿Qué estoy haciendo mal?

Respuesta1

Nada me llamó la atención a primera vista, pero si estabas de acuerdo con resolver esto en PHP, podrías hacer algo en la parte superior de index.php como lo siguiente (esto asumiendo que index.php está en la raíz del sitio).

if ($_SERVER['REQUEST_URI'] == '/index.php' || $_SERVER['REQUEST_URI'] == '/') {
    header('HTTP/1.1 403 Forbidden');
    exit;
}

información relacionada