Come impostare AllowOverride all


161

Voglio impostare AllowOverride allMa non so come farlo. Ho trovato il seguente codice cercando in google e incollandolo in .htaccess:

<Directory>
        AllowOverride All
</Directory>

Ma dopo averlo incollato ho iniziato a ricevere "Internal Server Error"

Qualcuno può guidarmi dove mettere questo codice o come farlo?


3
La <Directory>direttiva richiede un argomento path.
FKEinternet,

Risposte:


317

Nel caso in cui ti trovi su Ubuntu, modifica il file /etc/apache2/apache2.conf(qui abbiamo un esempio di /var/www):

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

e cambiarlo in;

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

poi,

sudo service apache2 restart

Potrebbe essere necessario fare anche sudo a2enmod rewriteper abilitare la riscrittura dei moduli.


55
Avevo anche bisogno di usare sudo a2enmod rewrite, quindi ha funzionato. Su Ubuntu 14.04 LTS. Spero che sia utile a qualcuno.
Jonauz,

2
Strano ... quando lo faccio ottengo l'errore interno del server. Indica un errore nel file .htaccess che si trova in /var/www/.htaccess? Ruotando apache2, torna a AllowOverride None risolve l'errore ma non consente la riscrittura degli URL.
o_O

In Ubuntu 12.04. Ho trovato questo file in / etc / apache2 / sites-available / default path
عثمان غني

Come posso sovrascriverlo da un file separato? Vedo che c'è IncludeOptional conf-enabled/*.confun'ultima riga del mio apache2.conffile. Ma sembra che apache2.confsia invece prioritario.
JohnnyQ,

Questo fa la magia per me. Dopo aver aggiornato il mio server debian aziendale da wheezy a jessie, tutto in apache ha smesso di funzionare e dopo aver aggiunto questo, tutto ha ripreso a funzionare.
periket2000,

51

L'obiettivo principale di AllowOverrideè che il gestore dei principali file di configurazione di apache (quello presente in / etc / apache2 / principalmente) decida quale parte della configurazione può essere modificata dinamicamente in base al percorso per applicazione.

Se non sei l'amministratore del server, dipendi dal livello AllowOverride che questi amministratori ti consente. In modo che possano impedirti di modificare alcune importanti impostazioni di sicurezza;

Se sei il gestore della configurazione principale di Apache, dovresti sempre utilizzare AllowOverride Nonee trasferire tutti gli esempi di google_based che trovi, in base ai file .htaccess nelle Directorysezioni sui file di configurazione principali. Poiché un contenuto .htaccess per un .htaccessfile /my/path/to/a/directoryè uguale a <Directory /my/path/to/a/directory>un'istruzione, tranne per il fatto che l' .htaccessalterazione dinamica della configurazione della richiesta per HTTP è qualcosa che rallenta il tuo server web. Preferisci sempre una configurazione statica senza .htaccesscontrolli (ed eviterai anche attacchi di sicurezza dovuti a .htaccessmodifiche).

A proposito nel tuo esempio che usi <Directory>e questo sarà sempre sbagliato, le istruzioni della Directory contengono sempre un percorso, come <Directory />o <Directory C:>o <Directory /my/path/to/a/directory>. E naturalmente questo non può essere inserito in a .htaccesscome .htaccessè come un'istruzione Directory ma in un file presente in questa directory. Ovviamente non è possibile modificare AllowOverridein a .htaccesspoiché questa istruzione gestisce il livello di sicurezza dei .htaccessfile.


17

Vai a your_severpath/apache_ver/conf/ Apri il file httpd.confin Blocco note.

Trova questa linea:

#LoadModule vhost_alias_module modules / mod_vhost_alias.so

Rimuovi il simbolo dell'hash:

LoadModule vhost_alias_module modules / mod_vhost_alias.so

Quindi vai <Directory />

e cambia in:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Quindi riavviare il server locale.


Lavoro fatto! Ty signore!
James Walker,

6
NB Order allow,denye Allow from allsono per Apache 2.2 e precedenti. Con Apache 2.4, queste due linee sono sostituite da Require all grantedcome mostrato nelle altre risposte.
FKEinternet

13

Su Linux, per facilitare l'accesso alla radice del documento, è necessario modificare il seguente file:

/etc/httpd/conf/httpd.conf

E a seconda del livello di directory a cui desideri rilassare l'accesso, devi modificare la direttiva

AllowOverride None

per

AllowOverride All

Quindi, supponendo che tu voglia consentire l'accesso ai file nella directory / var / www / html, dovresti cambiare le seguenti righe da:

<Directory "/var/www/html">
 AllowOverride None
</Directory>

per

<Directory "/var/www/html">
 AllowOverride All
</Directory>

8
e riavvia il server dopo
Daniel,

Dopo cento volte di aver ricontrollato i miei .htacces, questa era la soluzione! Grazie mille. Ho pensato, "tutto" è il valore predefinito della configurazione di Apache.
Matthias Kleine,

Inoltre, menzionare Linux nella tua risposta non è buono. Anche se questo è vecchio, voglio solo chiarire che quello che stai dicendo è per le distribuzioni basate su Redhat
Chi.CJRajeeva Lochana

11

Se stai usando Linux puoi modificare il codice nella directory di

/etc/httpd/conf/httpd.conf

ora, qui trova la linea di codice un po 'come

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride None
#
# Controls who can get stuff from this server.
#
    Order allow,deny
    Allow from all

</Directory>

Modificare AllowOveride None su AllowOveride All

Ora puoi impostare qualsiasi tipo di regola nel tuo file .httacess all'interno delle tue directory se qualsiasi altro sistema operativo prova a trovare il file di httpd.conf e modificarlo.


A partire dal novembre 18 1539 PST, quando cerco su Google "allowoverride", vedo una casella sopra i risultati della ricerca che mostra questo:now here fine the code line kinda like # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. #Sep 11, 2013 apache - How to Set AllowOverride all - Stack Overflow stackoverflow.com/questions/18740419/how-to-set-allowoverride-all
boot13,


5

Come altri utenti hanno spiegato qui sull'uso della direttiva allowoveride, che viene utilizzata per autorizzare l'utilizzo di .htaccess. una cosa che voglio sottolineare è che non usare mai allowoverride se altri utenti hanno accesso a scrivere .htaccess invece usano allowoveride per consentire determinati moduli.

Come AllowOverride AuthConfig mod_rewriteInvece di

AllowOverride All

Perché un modulo come mod_mime può rendere i file sul lato server come testo normale.


1
GRAZIE!! Questo è esattamente quello che stavo cercando. Voglio reindirizzare windwalker.com.au a windwanderer.com.au e quindi ho dovuto consentire questa direttiva in un file .htaccess e NIENTE ALTRO. Mettere sempre AllowOverride ALL in modo significativo riduce la sicurezza dei miei server.
Jesse the Wind Wanderer,

1

Ho anche riscontrato questo problema e ho trovato la soluzione come 2 passaggio seguente: 1. Nella cartella di apache2 abilitata per i siti, si modifica nell'elemento Directory impostando "AllowOverride all" (dovrebbe essere "all" non "none") 2. Nel progetto kohana nella cartella www, rinominare "esempio.htaccess" in ".htaccess"

L'ho fatto su Ubuntu. Spero che ti possa aiutare.


0

SuSE Linux Enterprise Server

Assicurati di modificare il file giusto https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_apache2_configuration.html

httpd.conf

Il file di configurazione principale del server Apache. Evita di modificare questo file. Contiene principalmente istruzioni include e impostazioni globali. Sovrascrivi le impostazioni globali nei file di configurazione pertinenti elencati qui. Modifica le impostazioni specifiche dell'host (come la radice del documento) nella configurazione dell'host virtuale .

In tal caso vhosts.d/*.confdeve essere modificato


0

Inoltre, quelle risposte esatte di voto a volte potrebbero vedere lo stesso errore a causa di impostazioni diverse e non corrispondenti su SSLparte delle configurazioni del server web . (Ovviamente quando non si utilizza il .htaccessfile).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.