2011-12-30 11 views
45

Ultimamente ho ripulito il mio progetto. Ho un .htaccess principale nella directory principale e altri 6. 5 di loro hanno funzionato Options -Indexes che non ho visto in alcun modo di consentire a qualsiasi visualizzazione di directory così spostata quella principale. quindi ora ho solo 2 file .htaccess. il principale e uno in /system che detienehtaccess <Directory> nega tutto

# Block External Access 
deny from all 

così ho voluto correre che in /system solo all'interno del principale. Quindi ho cancellato quello in/system e ho aggiunto

# Block External Access 
<Directory "/system/"> 
deny from all 
</Directory> 

al mio file .htaccess principale in uscita 1!

ma ora ho un

Internal Server Error

Il server ha rilevato un errore interno o errori di configurazione ed era in grado di completare la richiesta.

Si prega di contattare l'amministratore del server, webmaster @ localhost e li informa del tempo si è verificato l'errore, e tutto quello che può aver fatto che possono aver causato l'errore.

Ulteriori informazioni su questo errore potrebbero essere disponibili nel registro degli errori del server .

Apache/2.2.17 (Ubuntu) Server a 10.0.1.5 porta 80

L'obiettivo è quello di bloccare la lettura di tutti i file in/system ed è sottodirectory di ma permettono la visualizzazione di tutto il resto tutto da un unico .htaccess file per l'intero progetto. Qualche idea su come posso risolvere questo problema? Ho fatto alcune ricerche su Google ma non sono riuscito a ottenere nulla.

risposta

74

Non è possibile utilizzare Directory directive in .htaccess. Tuttavia, se si crea un file .htaccess nella directory/system e inserire la seguente in esso, si otterrà lo stesso risultato

#place this in /system/.htaccess as you had before 
deny from all 
+3

Sì. Ho avuto un .htaccess inserito in/system prima. Stavo solo cercando di avere solo uno per l'intero progetto. Credo di non poter e dovrò farlo in quel modo. – Keverw

+0

per gli utenti di Windows, assicurati di aver impostato esattamente il nome del file '.htaccess' di save-come il file da un editor di testo perché Windows Explorer non ti permette di rimuovere i nomi dei file. è stato un problema per me –

1

È possibile utilizzare da directory principale:

RewriteEngine On 
RewriteRule ^(?:system)\b.* /403.html 

Oppure:

RewriteRule ^(?:system)\b.* /403.php # with header('HTTP/1.0 403 Forbidden'); 
9

È inoltre possibile utilizzare la direttiva RedirectMatch per negare l'accesso a una cartella.

per negare l'accesso a una cartella, è possibile utilizzare il seguente RedirectMatch in .htaccess:

RedirectMatch 403 ^/folder/?$ 

Questo impedirà l'accesso esterno alla/cartella/es: http://example.com/folder/ restituirà un errore 403 Forbidden.

di negare l'accesso a tutto ciò all'interno della cartella, è possibile utilizzare questo:

RedirectMatch 403 ^/folder/.*$ 

Ciò bloccare l'accesso a tutto il pe cartella: http://example.com/folder/anyURI restituirà una risposta di 403 errore client.

Problemi correlati