La regola mod_rewrite non funziona sull'host virtuale. L'ho voluto per cakephp.
C'è un'impostazione da aggiungere nel file host virtuale?
La regola mod_rewrite non funziona sull'host virtuale. L'ho voluto per cakephp.
C'è un'impostazione da aggiungere nel file host virtuale?
Risposte:
Se stai utilizzando l'ultima versione di Apache 2.4+, ecco il processo per abilitare mod_rewrite.
Vai su etc/apache2/
Apri apache2.conf
usando 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 Modules
sezione controlla se mod_rewrite
c'è o no. Se è lì, allora è abilitato.
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>
apache2.conf
e il riavvioapache
404 sono scomparse ma tutte le pagine sono tornate sulla homepage!phpinfo()
neanche ilmod_rewrite
modulo era abilitato. Quindi eseguendo CLI commnd (come suggerito da Lonston di seguito) tutto è diventato dorato! Perché questa soluzione non ha abilitato ilmod-rewrite
modulo per me ma l'approvazione della CLI? È una combinazione di modifica.conf
ed esecuzione del comando CLI uno dopo l'altro per abilitare il modulo o uno di questi è effettivamente sufficiente?