J'essaie de supprimer le index.php de mon URL codeigniter. J'ai Apache24 avec codeigniter et ion auth. La seule façon de le faire fonctionner est de permettre à AllowOverride All
.
Le code pertinent est:
<Directory "c:/Apache24/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
En utilisant AllowOverride None
cela renvoie un code d'erreur 404. En utilisant AllowOverride All
Ça marche.
Quelles sont les implications de sécurité avec cela sur un serveur de production?
La directive AllowOverride
est utilisée pour autoriser l'utilisation de .htaccess
au sein du serveur Web pour permettre le remplacement de la configuration Apache par répertoire. Je crois que CI utilise mod_rewrites pour le faire fonctionner correctement. C'est pourquoi cela ne fonctionne que lorsque vous avez AllowOverride All
parce que vous dites au serveur Web d'autoriser l'utilisation d'un fichier .htaccess que CI utilise. Voilà la réponse simple. Il ne s'agit pas de sécurité, c'est de l'utilisation de .htaccess
des dossiers.
Vous devrez très probablement utiliser AllowOverride All
pour utiliser codeigniter car c'est ainsi que cela fonctionne. L'utilisation de cette directive ne devrait pas poser de problème majeur de sécurité. En termes de sécurité, vous devriez aller bien. Juste n'utilisez pas AllowOverride All
dans un <Directory />
bloquer.
Utilisez-le uniquement dans un répertoire Web spécifique. Voici ce que vous avez maintenant et cela devrait aller avec AllowOverride All
.
<Directory "c:/Apache24/htdocs">
sans cette directive, .htaccess
les fichiers ne fonctionneraient pas. Jetez un œil à la documentation pour une explication plus détaillée.
http://httpd.Apache.org/docs/current/mod/core.html#allowoverride