2014-06-30 4 views
7

Ich versuche, die index.php von meinem codeigniter URL zu entfernen. Ich habe apache24 mit codeigniter und ion auth. Die einzige Möglichkeit, dies zum Laufen zu bringen, besteht darin, AllowOverride All zuzulassen.httpd.conf AllowOverride Alle

der entsprechende Code ist:

<Directory "c:/Apache24/htdocs"> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Require all granted 
</Directory> 

Verwendung AllowOverride None Dies liefert einen 404-Fehlercode. Mit AllowOverride All funktioniert es.

Welche Auswirkungen hat dies auf einen Produktionsserver?

Antwort

17

AllowOverride Direktive wird verwendet, um die Verwendung von .htaccess innerhalb des Webservers zu erlauben, das Überschreiben der Apache-Konfiguration auf einer Verzeichnisbasis zu erlauben. Ich glaube, CI verwendet mod_rewrites, damit es richtig funktioniert. Deshalb funktioniert es nur, wenn Sie AllowOverride All haben, weil Sie dem Webserver mitteilen, dass er eine .htaccess-Datei verwenden darf, die CI verwendet. Das ist die einfache Antwort. Es geht nicht um Sicherheit, sondern um die Verwendung von .htaccess Dateien.

Sie werden höchstwahrscheinlich AllowOverride All verwenden müssen, um codeigniter zu verwenden, weil das die Art ist, wie es funktioniert. Bei der Anwendung dieser Richtlinie sollten keine größeren Sicherheitsbedenken bestehen. Sicherheitsgemäß sollte es dir gut gehen. Nur nichtAllowOverride All in einem <Directory /> Block verwenden.

Nur in einem bestimmten Webverzeichnis verwenden. Dies ist, was Sie jetzt haben und sollte mit AllowOverride All in Ordnung sein.

<Directory "c:/Apache24/htdocs">

, wenn es nicht für diese Richtlinie ist, .htaccess Dateien nicht funktionieren würden. Sehen Sie sich die Dokumentation für eine detailliertere Erklärung an.

http://httpd.apache.org/docs/current/mod/core.html#allowoverride

+0

Was sind die Auswirkungen der Verwendung des 'AllowOverride All' in' ' Block? –