web-dev-qa-db-fra.com

Comment activer mod_rewrite sur Apache 2.4?

J'utilise Wordpress et je voulais activer la fonctionnalité des jolies URL, mais elles ne fonctionnent pas, je pense que c'est à cause de mod_rewrite, mais je ne sais pas comment l'activer sur Apache 2.4 sous CentOS 7 ...

J'ai déjà essayé ceci:

grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite

mais rien ... voudrait également savoir que le chargement de tous les modules Apache a une mauvaise conséquence ou est-ce une mauvaise pratique?

9
Jonathan Solorzano

J'ai trouvé le moyen de savoir si un module est chargé ou non, voici la commande pour lister les modules activés:

apachectl -M | sort

Il listera tous les modules activés par ordre alphabétique.

Wordpress a un .htaccess mais par défaut où il active rewrite_module pour son utilisation:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

La seule chose que je devais faire était d'ajouter ceci dans le fichier vhost.conf à /etc/httpd/conf.d/vhosts.conf

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

C'est parce que je gère mes hôtes dans ce fichier. Mais cela pourrait être fait à httpd.conf, ou à n’importe quel autre fichier .conf inclus dans le httpd.conf

Merci...

19
Jonathan Solorzano
# nano /etc/httpd/conf/httpd.conf

trouver 

follow (AllowOverride none) 

et le changer 

(AllowOverride All) 
9
reimi

Apache2 est livré avec les exécutables a2enmod et a2dismod qui feront tout le "travail sale" de symlinking des fichiers conf.

Sur les distributions basées sur Debian, l’emplacement habituel est /etc/Apache/mods-available/. Voici les fichiers de configuration .conf (le cas échéant) et un fichier .load par module avec la directive LoadModule Apache2. Un module est activé s'il existe un lien symbolique vers son fichier .load dans le /etc/Apache2/mods-enabled/.

Vous pouvez, par exemple, activer le module Rewrite avec la commande

$ a2enmod rewrite
6
marekful

Dans httpd.conf , recherchez AllowOverride None et remplacez-le par AllowOverride All , puis redémarrez Apache

2
Kent Aguilar