Domanda Come abilitare mod_rewrite in Apache?


Ho appena installato lo stack LAMP sul mio sistema Ubuntu.

Il reindirizzamento non funziona per me. Non so come aggiustarlo. Qualcuno può aiutarmi?


158
2018-06-12 13:45


origine


IMHO questa domanda non è specifica di Ubuntu e dovrebbe essere migrata a Errore del server. - Paolo
L'OP ha installato la lampada su UBUNTU. Quanto più specifico di Ubuntu vuoi? - wojox
@ Wojov: Non so di questo caso, ma quell'argomento non funziona. "Come posso usare questa applicazione (su Ubuntu)?" sono per lo più fuori tema.
Questo non è un "Come posso usare l'applicazione", ma un "come abilitare una funzione specifica in Ubuntu". Apache sotto Ubuntu usa un diverso layout di configurazione in cui ogni modulo e host virtuale è un file /etc/apache2 e che può essere abilitato usando a2* programmi. - Lekensteyn
Dovresti descrivere quello che hai fatto per restringere il problema - ericn


risposte:


Per abilitarlo il modulo di riscrittura, esegui "apache2 enable module rewrite":

sudo a2enmod rewrite

È necessario riavviare il server Web per applicare le modifiche:

sudo service apache2 restart

Se pensi di usare mod_rewrite in .htaccess file, è anche necessario abilitare l'uso di .htaccess file cambiando AllowOverride None a AllowOverride FileInfo. Per il sito Web predefinito, modifica /etc/apache2/sites-available/default:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # changed from None to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

Dopo tale modifica, è necessario riavviare nuovamente Apache.


231
2018-06-12 13:49



Ho avuto più successo con AllowOverride All - Valentin Despa
Grazie! sudo a2enmod rewrite e FileInfo risolto per me! - d-_-b
Per me quel file era /etc/apache2/apache2.conf dove ho trovato quella voce di configurazione - rahmanisback
Sì, fare in modo che le due modifiche risolvano il problema. - Adelin
Non sta funzionando per me. Ho postato una domanda qui askubuntu.com/questions/809619/failing-to-rewrite-url - Suhail Gupta


Ho il coraggio di aggiungere una risposta speciale (come followup alla grande risposta sopra) riguardante ubuntu 14.04 e .htaccess :

In 14.04, il nome del file di configurazione predefinito è cambiato in 000-default.conf :

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

aggiungi quanto segue alla fine del file:

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

Per qualche ragione, in Ubuntu 14.04 e apache2 la radice è impostata su /www/html. Se vuoi cambiare la radice del server web torna a buon vecchio /www, open 000-default.conf e cambiare

DocumentRoot /var/www/html/

a

DocumentRoot /var/www/

e poi fuori rotta dovrebbe essere

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

49
2017-10-17 13:00



Questo è un dettaglio importante +1 - Koba
Grazie per informazioni! In questo / nuovo modo possiamo usare www come cartella in cui mettiamo tutti i siti web, e html è di default "sito web" per localhost. Può essere importante se stai giocando con le porte di apertura al mondo: in questo modo il tuo localhost non può vedere le cartelle di altri progetti. - Vladimir Vukanac
Non sta funzionando per me. sto usando Ubuntu 14.04.4 LTS - Suhail Gupta