Come abilitare mod_rewrite per l'host virtuale


8

La regola mod_rewrite non funziona sull'host virtuale. L'ho voluto per cakephp.

C'è un'impostazione da aggiungere nel file host virtuale?

Risposte:


21

Se stai utilizzando l'ultima versione di Apache 2.4+, ecco il processo per abilitare mod_rewrite.

Vai su etc/apache2/
Apri apache2.confusando il tuo editor di testo preferito.
Modificare

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

per

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

Quindi salvalo. Ricorda che dovresti avere i permessi di root per modificare e salvare questo file.
Ora riavvia apache.

service apache2 reload

Questo processo abiliterà mod_rewrite per il server apache incluso l'host virtuale.

Puoi anche verificare se è abilitato o meno. Crea uno script php

<?php    
phpinfo();    
?>

Caricalo dal server. Nella Loaded Modulessezione controlla se mod_rewritec'è o no. Se è lì, allora è abilitato.


Prima di usare questa opzione, tutte le mie riscritture stavano finendo a 404, tuttavia dopo l'aggiornamento apache2.confe il riavvio apache404 sono scomparse ma tutte le pagine sono tornate sulla homepage! phpinfo()neanche il mod_rewritemodulo era abilitato. Quindi eseguendo CLI commnd (come suggerito da Lonston di seguito) tutto è diventato dorato! Perché questa soluzione non ha abilitato il mod-rewritemodulo per me ma l'approvazione della CLI? È una combinazione di modifica .confed esecuzione del comando CLI uno dopo l'altro per abilitare il modulo o uno di questi è effettivamente sufficiente?
Niladri Sarkar,

6

Abilita Riscrivi utilizzando

# sudo a2enmod rewrite

Quindi riavviare apcahe2 utilizzando

# service apache2 restart

Abilitare in Virtualhost aggiungendo

AllowOverride FileInfo

Quindi riavviare apcahe2 utilizzando

# service apache2 restart

esempio :

<Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # I Have below line from none to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

Questo ha funzionato anche per me!
Niladri Sarkar,
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.