Comment activer mod_rewrite pour l'hôte virtuel

8

La règle mod_rewrite ne fonctionne pas sur l'hôte virtuel. J'ai voulu ça pour cakephp.

Y a-t-il un paramètre à ajouter dans le fichier hôte virtuel?

user12gk21hkj
la source

Réponses:

21

Si vous utilisez la dernière version Apache 2.4+, voici comment activer mod_rewrite.

Accédez à etc/apache2/
Ouvrir à l' apache2.confaide de votre éditeur de texte préféré.
Changement

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

à

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

Enregistrez-le ensuite. N'oubliez pas que vous devez avoir l'autorisation root pour modifier et enregistrer ce fichier.
Redémarrez maintenant apache.

service apache2 reload

Ce processus activera mod_rewrite pour le serveur apache, y compris l'hôte virtuel.

Vous pouvez également vérifier s'il est activé ou non. Créer un script php

<?php    
phpinfo();    
?>

Chargez-le depuis le serveur. Sous la Loaded Modulessection, vérifiez s'il mod_rewriteexiste ou non. S'il est là, il est activé.

Nabil
la source
Avant d'utiliser cette option, toutes mes réécritures se terminaient à 404, mais après la mise à jour apache2.confet le redémarrage du apache404 a disparu, mais toutes les pages ont atterri sur la page d'accueil! phpinfo()n'a pas non plus mod_rewriteactivé le module. Ensuite, en exécutant la commande CLI (comme suggéré par Lonston ci-dessous), tout est devenu doré! Pourquoi cette solution n'a pas activé le mod-rewritemodule pour moi mais l'approche CLI? S'agit-il d'une combinaison de modification .confet d'exécution de la commande CLI l'une après l'autre pour activer le module ou l'une ou l'autre de celles-ci est réellement suffisante?
Niladri Sarkar
6

Activer la réécriture à l'aide

# sudo a2enmod rewrite

Redémarrez ensuite l'apcahe2 en utilisant

# service apache2 restart

Activer dans Virtualhost en ajoutant

AllowOverride FileInfo

Redémarrez ensuite l'apcahe2 en utilisant

# service apache2 restart

exemple :

<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
la source
Cela a fonctionné pour moi aussi!
Niladri Sarkar