Afin d'utiliser mod_rewrite
vous pouvez taper la commande suivante dans le terminal :
sudo a2enmod rewrite
Redémarrez apache2 après
sudo /etc/init.d/apache2 restart
ou
sudo service apache2 restart
ou selon la nouvelle méthode unifiée de contrôle du système
sudo systemctl restart apache2
Ensuite, si vous le souhaitez, vous pouvez utiliser les éléments suivants .htaccess
fichier.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Ce qui précède .htaccess
(s'il est placé dans votre DocumentRoot
) redirigera tout le trafic vers un index.php
dans le fichier DocumentRoot
sauf si le fichier existe.
Ainsi, disons que vous avez la structure de répertoire suivante et que httpdocs est le répertoire DocumentRoot
httpdocs/
.htaccess
index.php
images/
hello.png
js/
jquery.js
css/
style.css
includes/
app/
app.php
Tout fichier qui existe dans httpdocs sera servi au demandeur en utilisant la commande .htaccess
montré ci-dessus, cependant, tout le reste sera redirigé vers httpdocs/index.php
. Les fichiers de votre application dans includes/app
ne sera pas accessible.
1 votes
En fait, le problème était que j'avais un mauvais chemin, car ${DOCUMENT_ROOT} pointait vers le répertoire racine, ce qui était correct sur l'hébergement, mais faux sur le local, donc le problème n'était pas seulement RewriteEngine On, que j'avais déjà
0 votes
Pouvez-vous modifier la réponse acceptée en celui-ci ? L'auteur de la réponse acceptée actuellement a admis qu'elle n'était pas assez bonne.
1 votes
Comment activer mod_rewrite dans Ubuntu 12.04 LTS (devrait fonctionner dans Debian aussi) . Cela montre l'installation ET l'activation, les tutoriels ci-dessous ne le font étonnamment pas :(
3 votes
Je conseille vivement à tous ceux qui veulent activer les directives mod_rewrite dans les fichiers .htacces d'utiliser
AllowOverride FileInfo
au lieu de tout autoriser, comme le suggèrent TOUTES les réponses de cette page. Il est triste de voir que toutes ces réponses adoptent l'approche "tant que ça marche, c'est bon" au lieu d'essayer de comprendre les conséquences de la "solution" proposée. Essayez de comprendre ce que vous faites sur votre serveur et comment limiter les privilèges que vous venez d'accorder avecAllowOverride All
. RTFM ! Il n'est pas clair sur le sujet.0 votes
Où l'avez-vous décommenté ? Où se trouve le fichier ?
2 votes
Black C'est dans le fichier de configuration d'Apache nommé httpd.conf. Dans mon PC, il se trouve dans le répertoire C:\xampp\apache\conf parce que j'ai installé Apache avec XAMPP.