Comment activer mod_rewrite dans Apache?


165

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?


3
IMHO cette question n'est pas spécifique à Ubuntu et devrait être migrée vers Server Fault .
Paolo

2
L'OP a installé la lampe sur UBUNTU. Combien voulez-vous de plus spécifique à Ubuntu?
Wojox

1
@wojov: Je ne suis pas au courant de cette affaire, mais cet argument ne fonctionne pas. "Comment puis-je utiliser cette application (sur Ubuntu)?" sont pour la plupart hors sujet.

23
Ce n'est pas un "Comment utiliser une application", mais un "Comment activer une fonctionnalité spécifique dans Ubuntu". Apache sous Ubuntu utilise une configuration différente dans laquelle chaque module et hôte virtuel est un fichier /etc/apache2et qui peut être activée à l'aide de a2*programmes.
Lekensteyn

Décrivez ce que vous avez fait pour cerner le problème
ericn

Réponses:


239

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 des .htaccessfichiers, vous devez également activer l'utilisation des .htaccessfichiers en passant AllowOverride Noneà 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.


18
J'avais plus de succès avec AllowOverride All
Valentin Despa

Merci! sudo a2enmod rewriteet l'a FileInfocorrigé pour moi!
d -_- b

22
Pour moi, ce fichier était /etc/apache2/apache2.conf où j'ai trouvé cette entrée de configuration
doc_id

Oui, apportez les deux modifications pour résoudre le problème.
Adelin

Cela ne fonctionne pas pour moi. J'ai posté une question ici askubuntu.com/questions/809619/failing-to-rewrite-url
Suhail Gupta

49

J'ose ajouter une réponse spéciale (en guise de suivi de l'excellente réponse ci-dessus) concernant Ubuntu 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 voulez changer la racine du serveur Web en bon vieux /www, open 000-default.confet changer

DocumentRoot /var/www/html/

à

DocumentRoot /var/www/

et puis bien sûr il devrait être

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

1
Merci pour l'info! Cette / nouvelle façon, nous pouvons utiliser www en tant que dossier dans lequel nous mettons tous les sites Web, et html est par défaut "site Web" pour localhost. Cela peut être important si vous jouez avec l'ouverture de ports au monde - de cette manière, votre hôte local ne pourra pas voir les dossiers d'autres projets.
Vladimir Vukanac

1
Cela ne fonctionne pas pour moi. J'utilise Ubuntu 14.04.4 LTS
Suhail Gupta
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.