web-dev-qa-db-fra.com

Utilisation de mod_rewrite dans Apache 2.4

Bon, il y a beaucoup de discussions sur l'utilisation de mod_rewrite, mais je trouve que cela semble fonctionner un peu différemment dans Apache 2.4. J'ai essayé ceci:

<Directory /var/www/vhosts/example.com>
<IfModule mod_rewrite>
RewriteEngine On
RewriteBase /var/www/vhosts/example.com
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>
</Directory>

Ceci est situé dans /etc/Apache2/conf-available/httpd.conf/, et j'ai runt Sudo a2enconf httpd.conf qui a fonctionné et l'a activé, mais il ne veut pas fonctionner de toute façon ..

Je l’ai essayé sans le bit Directory, j’ai essayé de l’appeler mod_rewrite.c, ce que wordpress suggère, mais aucun des éléments ci-dessus ne semble fonctionner. Je l'ai également essayé avec la balise Directory mais sans IfModule, ce qui, pour des raisons évidentes, a conduit Apache à ne pas démarrer. Et oui, je redémarre Apache à chaque tentative.

Existe-t-il un nouveau truc dans Apache 2.4 que je ne sache pas si? Toute aide appréciée.

7
Tjita1

Après activé mod_rewrite avec cette commande:

Sudo a2enmod rewrite

Créez un fichier pour votre configuration httpd dans / etc/Apache2/sites-available / donc dans Ubuntu, le fichier que je crée est / etc/Apache2/sites -available/code-machine.conf:

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

Edit: Et comme Chris Gregory et Firepol l'ont rappelé, vous pouvez enregistrer le nouveau fichier de configuration code-machine.conf:

Sudo a2ensite code-machine.conf

Puis redémarrez votre Apache:

Sudo service Apache2 restart
11
metamorph

J'avais enregistrer le nouveau fichier de configuration avec Apache avant que cela ne fonctionne.

Sudo a2ensite MyConfiguration.conf

Ensuite, je pourrais courir

Sudo service Apache2 restart
2
Chris Gregory

même je faisais face à un problème similaire avec Apache 2.4 sur 14.04

Veuillez noter que le fichier de configuration se trouve maintenant à /etc/Apache2/Apache2.conf.

J'ai essayé cela et cela a fonctionné pour moi.

Sudo nano /etc/Apache2/Apache2.conf

Recherchez le répertoire de directives où se trouve votre répertoire racine et définissez les éléments suivants:

Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
2
Soumojit Ghosh