web-dev-qa-db-fra.com

Comment activer mod_rewrite dans Apache?

Je viens d'installer la pile LAMP sur mon système Ubuntu.

La redirection ne fonctionne pas pour moi. Je ne sais pas comment le réparer. Quelqu'un peut-il m'aider?

163
vinoth

Pour activer le module de réécriture, exécutez "Apache2 enable module rewrite":

Sudo a2enmod rewrite

Vous devez redémarrer le serveur Web pour appliquer les modifications:

Sudo service Apache2 restart

Si vous envisagez d'utiliser mod_rewrite dans les fichiers .htaccess, vous devez également activer l'utilisation des fichiers .htaccess en remplaçant AllowOverride None par AllowOverride FileInfo. Pour le site Web par défaut, éditez /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>

Après une telle modification, vous devez redémarrer Apache.

236
Lekensteyn

J'ose ajouter une réponse spéciale (à la suite de l'excellente réponse ci-dessus) concernant buntu 14.04 et .htaccess:

Dans 14.04, le nom du fichier de configuration par défaut est remplacé par 000-default.conf:

Sudo gedit /etc/Apache2/sites-available/000-default.conf

ajoutez ce qui suit à la fin du fichier:

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

Pour une raison quelconque, dans Ubuntu 14.04 et Apache2, la racine est définie sur /www/html. Si vous souhaitez rétablir la racine du serveur Web en bon vieux /www, open 000-default.conf et changer

DocumentRoot /var/www/html/

à

DocumentRoot /var/www/

et puis bien sûr il devrait être

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