Cómo habilitar mod_rewrite para el host virtual

8

La regla mod_rewrite no funciona en el host virtual. He querido esto para cakephp.

¿Hay configuración para agregar en el archivo de host virtual?

user12gk21hkj
fuente

Respuestas:

21

Si está utilizando la última versión de Apache 2.4+, aquí está el proceso para habilitar mod_rewrite.

Vaya a etc/apache2/
Abrir apache2.confusando su editor de texto favorito.
Cambio

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

a

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

Entonces guárdalo. Recuerde que debe tener permiso de root para editar y guardar este archivo.
Ahora reinicie apache.

service apache2 reload

Este proceso habilitará mod_rewrite para el servidor apache, incluido el host virtual.

También puede verificar si está habilitado o no. Crea un script php

<?php    
phpinfo();    
?>

Cárgalo desde el servidor. En la Loaded Modulessección, verifique si mod_rewritehay o no. Si está allí, entonces está habilitado.

Nabil
fuente
Antes de usar esta opción, todas mis reescrituras terminaban en 404, sin embargo, después de actualizar apache2.confy reiniciar apache404 desaparecieron, ¡pero todas las páginas volvieron a la página de inicio! phpinfo()tampoco tenía el mod_rewritemódulo habilitado. Luego, ejecutando el comando CLI (como lo sugiere Lonston a continuación) ¡todo se volvió dorado! ¿Por qué esta solución no mod-rewritehabilitó el módulo para mí sino la aprobación de la CLI? ¿Es esta una combinación de modificar .confy ejecutar el comando CLI uno tras otro para habilitar el módulo o cualquiera de estos es realmente suficiente?
Niladri Sarkar
6

Habilite Reescribir usando

# sudo a2enmod rewrite

Luego reinicie el apcahe2 usando

# service apache2 restart

Habilite en Virtualhost agregando

AllowOverride FileInfo

Luego reinicie el apcahe2 usando

# service apache2 restart

ejemplo :

<Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # I Have below line from none to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>
Babin Lonston
fuente
¡Esto también funcionó para mí!
Niladri Sarkar