consentendo l'accesso all'indice solo con .htaccess

Ho questo nel mio file .htaccess, nella root del sito:

Options -Indexes <directory ../.*> Deny from all </directory> <Files .htaccess> order allow,deny deny from all </Files> <Files index.php> Order allow,deny allow from all </Files> 

Quello che sto cercando è quello di bloccare l'accesso a cartelle e file a qualsiasi cosa che non si chiami index.php, a prescindere da quale directory è accessibile. Ho la parte di cartella che funziona perfettamente e la negazione di tutte le regole sta funzionando pure – ma il mio tentativo di consentire l'accesso a index.php non è riuscito.

  • È sicuro riavviare un server aperto a Internet?
  • Come si blocca il partito / etc
  • Come trovare un punto di ingresso di un utente non autorizzato a un server
  • Non è rispettato lo schema predefinito di SQL Server 2008?
  • Pericoli di sicurezza di permessi sciolti
  • SSH Key Reuse Advice
  • Perché reindirizza .htaccess lavoro in http ma non con https?
  • Come impedire il collegamento a caldo ("furto di immagini" / "furto di banda") di risorse sul mio sito?
  • .htaccess 301 redirect, stesso server
  • Due router su diverse sottoreti - funziona questa configuration?
  • Impostare il tipo MIME di file JavaScript generati da PHP
  • In quali scenari sarebbe una VLAN non allineare 1: 1 con una substring?
  • One Solution collect form web for “consentendo l'accesso all'indice solo con .htaccess”

    Forse stai pensando di complicare, negare a tutti l'accesso e quindi consentire l'accesso a index.php e alla stessa cartella. Per esempio:

     Order allow,deny Deny from All <FilesMatch "^(index\.php)?$"> Allow from All </FilesMatch> 

    Se non si desidera nemless desiderare di utilizzare http://doma.in/folder/, è ansible sostituire la direttiva FilesMatch con i Files index.php . Tieni presente che dipende dalla direttiva DirectoryIndex quale file verrà visualizzato quando si accede a una cartella senza nome di file.

    Modifica: per rispondere alla domanda nel tuo commento, penso che avrai bisogno di un htaccess più potente usando mod_rewrite. Non è ansible utilizzare Directory e DirectoryMatch in un file .htaccess in base alla documentazione di Apache. Poiché la richiesta viene negata prima che RewriteRule possa aggiungere una barra di traino, non è ansible aggiungere la traccia di trailing con mod_write.

     <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !/index\.php$ RewriteRule ^.*$ - [F] </IfModule> <IfModule !mod_rewrite.c> Order allow,deny Deny from All </IfModule> 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.