내 Controller로 연결되는 모든 URL에 index.php를 포함 할 필요가 없도록 CodeIgniter 설치 루트에 .htaccess 파일을 적용하려고합니다. 당신이 볼 수 있듯이.htaccess - DirectoryIndex가 효과가없는 것으로 나타납니다.
<IfModule authz_core_module>
Require all granted
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
DirectoryIndex login.php
RewriteEngine On
RewriteCond $1 !^(index\.php)
RewriteCond $(REQUEST_FILENAME) !-f
RewriteCond $(REQUEST_FILENAME) !-d
RewriteRule ^(.*)$ ./index.php/$1
, 그것은 mod_rewrite를하고 여기에 추가 된 DirectoryIndex에 지시어에 대한 몇 가지 재 작성 규칙과 기본 htaccess로 파일입니다 :
이 내 htaccess로 파일의 내용이다. Mod_rewrite가 활성화되어 있습니다 (apachectl -M을 사용하여 이것을 확인했습니다).
이제 우분투 16.04 LTS에서 Apache 2.4.18을 실행 중이며 CodeIgniter 3.1.6을 사용하고 있습니다. 문제는 URL을 입력 할 때 원하는 login.php 대신 CodeIgniters index.php로 리디렉션된다는 것입니다. 오히려 DirectoryIndex 지시어를 login.php의 내용을 index.php로 옮기는 대신 명확한 이유로 DirectoryIndex 지시어를 사용하고 싶습니다. 내 mod_rewrite 규칙은 URL에 index.php를 포함 할 필요없이 URL을 기존 파일 "index.php"로 라우팅하도록되어 있습니다. 이렇게하면 URL이 더 깨끗하지만 CodeIgniter의 기능을 계속 사용할 수 있습니다.
내 마스터 아파치 설정은 분명히 CodeIgniter가 필요하기 때문에 .htaccess 파일을 사용할 수있게 해주고 URL 재 작성 지시문은 정상적으로 작동합니다. 왜 DirectoryIndex는 파일 내부에 상관없이 아무 것도하지 않는 것 같습니다.