httpd.conf AllowOverride All

#apache #.htaccess #codeigniter #httpd.conf

#apache #.htaccess #codeigniter #httpd.conf

Вопрос:

Я пытаюсь удалить index.php с моего URL-адреса codeigniter. У меня есть apache24 с codeigniter и ion auth. Единственный способ заставить это работать — разрешить AllowOverride All .

Соответствующий код:

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

Использование AllowOverride None этого возвращает код ошибки 404. Использование AllowOverride All этого работает.

Каковы последствия этого для безопасности на рабочем сервере?

Ответ №1:

AllowOverride директива используется для разрешения использования .htaccess внутри веб-сервера, чтобы разрешить переопределение конфигурации Apache для каждого каталога. Я считаю, что CI использует mod_rewrites, чтобы заставить его работать правильно. Вот почему это работает только тогда, когда у вас есть AllowOverride All , потому что вы сообщаете веб-серверу разрешить использование файла .htaccess, который использует CI. Это простой ответ. Речь идет не о безопасности, скажем, а об использовании .htaccess файлов.

Скорее всего, вам придется использовать AllowOverride All для использования codeigniter, потому что так оно и работает. При использовании этой директивы не должно быть никаких серьезных проблем с безопасностью. С точки зрения безопасности у вас все должно быть в порядке. Просто не используйте AllowOverride All в <Directory /> блоке.

Используйте его только в определенном веб-каталоге. Это то, что у вас есть сейчас, и с этим должно быть все в порядке AllowOverride All .

<Directory "c:/Apache24/htdocs">

если бы не эта директива, .htaccess файлы не работали бы. Взгляните на документацию для более подробного объяснения.

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

Комментарии:

1. Каковы последствия использования блока AllowOverride All in <Directory /> ?

2. @ApurvaKunkulol Это позволило бы Apache выполнять поиск .htaccess файлов вплоть до корня сервера. Помимо необходимости, документы Apache специально предупреждают об этом по соображениям «безопасности и производительности».