Domanda Indice di directory vietato dalla direttiva Options


Sto usando il plugin dompdf per codeigniter: http://codeigniter.com/wiki/PDF_generation_using_dompdf/

per generare pdf da un modulo. Funziona su localhost, ma sul server live ottengo questo nel log degli errori:

Directory index forbidden by Options directive: /var/www/vhosts/domain.co.uk/httpdocs/mm/userdata/account1/invoices/

Qualche idea di cosa significhi? Ho cercato le risposte e ho trovato alcune che suggeriscono di modificare httpd.conf, ma non ho accesso a questo.

Ho anche provato ad aggiungere un file index.html vuoto alla directory root e document (come suggerito anche altrove, ma senza alcun risultato).

Qualsiasi aiuto molto apprezzato.

Grazie!


44
2018-03-14 16:58


origine


risposte:


O il principale httpd.conf o il .htaccess il file in questa directory o in una directory padre vicina probabilmente include:

Options -Indexes

Il tuo host potrebbe doverlo impostare +Indexes se non hai accesso in .htaccess e voglio elencare e sfogliare il contenuto della directory, assente un valore predefinito index.html, index.php, ecc. Se la directory non deve avere un file predefinito e non si abilita Indexes, puoi indirizzare direttamente solo i nomi dei file al suo interno.

Il Indexes l'opzione è generalmente disabilitata per impostazione predefinita su molte installazioni di Apache.

Tutti i dettagli sono disponibili in la documentazione di base di Apache su Options


55
2018-03-14 17:00



Significa che non c'è alcun documento predefinito in quella directory (index.html, index.php, etc ...). Sulla maggior parte dei server Web, ciò significherebbe che mostrerebbe un elenco dei contenuti della directory. Ma mostrare che la directory è proibita dalla configurazione del server (Options -Indexes)


29
2018-03-14 17:01



Un altro problema che potresti incontrare se stai eseguendo RHEL (mi sono imbattuto in esso) è che c'è una pagina di benvenuto predefinita configurata con il pacchetto httpd che sovrascriverà le tue impostazioni, anche se inserisci gli indici delle opzioni. Il file è in /etc/httpd/conf.d/welcome.conf. Vedere il seguente link per maggiori informazioni: http://wpapi.com/solved-issue-directory-index-forbidden-by-options-directive/


9
2018-03-21 22:12



Il problema

Indici visibili in un browser Web per le directory che non contengono un file index.html o index.php.

Ho avuto un sacco di problemi con la configurazione sul server web httpd di Scientific Linux per smettere di mostrare questi indici.

La configurazione che non ha funzionato

Direttive della directory dell'host virtuale httpd.conf:

<Directory /home/mydomain.com/htdocs>
    Options FollowSymLinks
    AllowOverride all
    Require all granted
</Directory>

e l'aggiunta della seguente riga a .htaccess:

Options -Indexes

Gli indici di directory erano ancora visibili. le impostazioni di .htaccess non funzionavano!

Come potrebbe essere, altre impostazioni in .htaccess funzionavano, quindi perché non questa? Che succede? Dovrebbe funzionare! % # $ & ^ $% @ # !! 

La correzione

Cambia la linea di opzioni di httpd.conf su:

Options +FollowSymLinks

e riavviare il server web.

Dalla pagina di mod core di Apache: ( https://httpd.apache.org/docs/2.4/mod/core.html#options )

Opzioni di missaggio con + o - con quelli senza non è una sintassi valida   e verrà rifiutato durante l'avvio del server dal controllo della sintassi con un   abortire.

Gli indici delle directory Voilà non venivano più visualizzati per le directory che non contenevano un file index.html o index.php.

Ora cosa! Una nuova ruga

Le nuove voci hanno iniziato a comparire in "error_log" quando è stato tentato l'accesso a tale directory:

[Fri Aug 19 02:57:39.922872 2016] [autoindex:error] [pid 12479] [client aaa.bbb.ccc.ddd:xxxxx] AH01276: Cannot serve directory /home/mydomain.com/htdocs/dir-without-index-file/: No matching DirectoryIndex (index.html,index.php) found, and server-generated directory index forbidden by Options directive

Questa voce proviene dal modulo autoindex di Apache con un LogLevel di "errore" come indicato da [autoindex: errore] del messaggio di errore --- il formato è [module_name: loglevel].

Per impedire che queste nuove voci vengano registrate, il LogLevel deve essere modificato a un livello superiore (ad es. "Crit") per registrare meno --- solo messaggi di errore più gravi.

LogLevels di Apache 2.4

Vedi le direttive principali di Apache 2.4 per Loglevel.

emerg, alert, crit, error, warn, notice, info, debug, trace1, trace2, trace3, tracr4, trace5, trace6, trace7, trace8

Ogni livello più in profondità nella lista registra tutti i messaggi di qualsiasi livello precedente.

Il livello predefinito di Apache 2.4 è "warn". Pertanto, tutti i messaggi classificati come emerg, alert, crit, error e warn vengono scritti in error_log.

Correzione aggiuntiva per arrestare le nuove voci error_log

Aggiunta la seguente riga all'interno della sezione <Directory> .. </ Directory> di httpd.conf:

LogLevel crit

La soluzione 1

Configurazione httpd.conf <Directory> .. </ Directory> del mio host virtuale:

<Directory /home/mydomain.com/htdocs>
    Options +FollowSymLinks
    AllowOverride all
    Require all granted
    LogLevel crit
</Directory>

e aggiungendo a / home /mydomain.com/htdocs/.htaccess, la directory principale del file .htaccess del tuo sito web:

Options -Indexes

Se non ti dispiace i messaggi a livello di 'errore', ometti

LogLevel crit

Scientific Linux - Solution 2 - Disabilita mod_autoindex

Niente più autoindirizzamento delle directory all'interno del tuo spazio web. Nessuna modifica a .htaccess. Tuttavia, è necessario accedere ai file di configurazione httpd in / etc / httpd

  1. Modifica /etc/httpd/conf.modules.d/00-base.conf e commenta la riga:

    LoadModule autoindex_module modules/mod_autoindex.so
    

    aggiungendo un # prima di esso, quindi salva il file.

  2. Nella directory /etc/httpd/conf.d rinomina (mv)

    sudo mv autoindex.conf autoindex.conf.<something_else>
    
  3. Riavvia httpd:

    sudo httpd -k restart
    

    o

    sudo apachectl restart
    

Autoindex_mod è ora disabilitato.

Distribuzioni Linux con comandi ap2dismod / ap2enmod

Disabilita il modulo autoindex inserisci il comando

    sudo a2dismod autoindex

per abilitare il modulo autoindex entrare

    sudo a2enmod autoindex

8
2017-08-18 20:24



Inserisci queste righe:

<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs">
        Options  +Indexes
</Directory>

Nel tuo C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf file. Presumo che tu stia usando Virtual Host per lo sviluppo.

E poi, ovviamente, basta riavviare Apache.

Documentazione


3
2018-01-21 21:44



Mi sono bloccato sullo stesso errore, il problema proveniva da un errore di sintassi in un'istruzione MySql nel mio codice, in particolare la mia variabile $ _session mancava un "'. Ci sono volute ore per capirlo perché nel registro degli errori la dichiarazione era fuorviante. Spero che aiuti qualcuno.


0
2018-06-12 18:24