Come abilitare l'uso di .htaccess in Apache su Ubuntu?


15

Sto cercando di abilitare l'uso del file htaccess in Ubuntu 14.04 (Apache 2.4.7). So che questa domanda ha molti possibili duplicati, ma nessuno di loro mi ha ancora aiutato.

.htaccess

ErrorDocument 404 /404.html

000-default.conf

<VirtualHost *:80>
AccessFileName .htaccess

ServerAdmin webmaster@localhost
DocumentRoot /var/www

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/>
  Options Indexes FollowSymLinks Includes
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>

Cos'altro serve?


1
La direttiva AllowOverride All consente tutte le opzioni nel file .htaccess. 000-default.conf presuppone che sul tuo server sia presente un solo sito. Il file .htaccess non funziona per te? Esistono più siti ospitati su questo server?
closetnoc,

Ci sono molte cartelle in / var / www ma non vengono creati host virtuali. La cartella / etc / apache2 / sites-available / contiene due file, 000-default.conf e default-ssl.conf. Il file htaccess si trova in / var / www /
David ZIP

Forse 'DocumentRoot / var / www /'? (barra finale)
Kovah,

Verificare che / etc / apache2 / sites-enabled / contenga un collegamento a 000-default.conf. Se si modifica il file /var/www/index.html è possibile visualizzare le modifiche quando si visualizza il server con un browser Web, giusto?
Stephen Ostermiller

Risposte:


26

Primo passo

Apri il file come

sudo vim /etc/apache2/apache2.conf

Secondo passo

rimuovi il segno di commento (#) se lo trovi prima di questa riga (numero riga 187 circa)

AccessFileName .htaccess

Terzo passo

Quindi trova la linea dove c'è

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

sostituire "Nessuno" con "Tutto"

AllowOverride All

E voilà ... .htaccessfunziona !!


3
le modifiche non hanno avuto effetto fino al riavvio di apache Comando: riavvio del servizio apache
Tahir Yasin

1
Suggerisco, come menziona @TahirYasin, di riavviare apache. sudo service apache2 restart.
www139,


1

Nel mio caso il passaggio AllowOverride NoneaAllowOverride All in /etc/apache2/sites-enabled/000-default.conf aiutato.

Tutti gli altri file .conf hanno già avuto AllowOverride All.


0
  1. In /etc/apache2/apache2.conf rimuovi il segno di commento (# ) daAccessFileName .htaccess
  2. Il nome del file di configurazione di Apache non è standard. Puoi rinominarlo in default.conf in Windows e rinominarlo in default in Linux. Nel sistema operativo basato su Linux, eseguire questo codice nel terminale:

    sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default
    

È chiamato con gli zeri in modo che venga prima in ordine alfabetico. Se si dispone di un file default.conf e quindi si crea un sito per anteater.com, allora formichiere diventa l'host predefinito perché viene caricato per primo. Conservare il 000 per evitare tali problemi. Il nome del file conf non dovrebbe avere nulla a che fare con il funzionamento o meno di .htaccess.
Stephen Ostermiller

1
'AccessFileName .htaccess' è già senza commenti. La risposta sopra mi ha aiutato. Grazie.
David ZIP
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.