DirectoryIndex는 htaccess에서는 작동하지만 apache2 .conf 파일에서는 작동하지 않습니다.

DirectoryIndex는 htaccess에서는 작동하지만 apache2 .conf 파일에서는 작동하지 않습니다.

index.php를 기본 파일로 사용하려면 Ubuntu를 설치해야 합니다.

추가됨

  DirectoryIndex index.php 

/etc/apache2/apache2.conf로

추가됨

<Directory /path/to/website/root/>
    DirectoryIndex index.php 
</Directory>

/etc/apache2/sites-available/mysite.conf에 이어 활성화 및 다시 시작

sudo a2ensite mysite
sudo service apache2 restart

내가 놓친 게 무엇입니까? 그래도 서버는 기본 파일을 로드하지 않습니다.

참고: DirectoryIndex index.php.htaccess에 추가하면 원하는 효과가 발생하지만 .conf 파일을 통해 이 작업을 수행하는 것을 선호합니다.

답변1

DirectoryIndex를 어디에 넣었나요? .htaccess에 추가하는 것은 다음 명령문을 넣는 것과 같습니다.

<Directory /path/to/htaccess/file/>
DirectoryIndex index.php
</Directory>

따라서 DirectoryIndex 주위에 디렉터리 설명을 추가해 보세요. 약간 해킹적이지만 아마도 작동할까요? 전체 가상 호스트 구성과 같이 더 많은 구성을 제공하려고 시도하지 않는 경우.

답변2

오늘 우리는 거의 기본 Apache 구성을 사용하는 Apache 2.2가 포함된 SLES 11 SP4에서 비슷한 문제를 겪었습니다. 문제는 URL에서 명시적으로 호출되지 않을 때 Apache가 기존 index.html 파일을 무시한다는 것입니다. 예: server.domain.tld/dir/

그러나 명시적 파일을 사용하여 호출하면 콘텐츠를 제공합니다. 예: server.domain.tld/dir/index.hmtl . 따라서 파일 시스템 권한에는 문제가 없었습니다. htdocs 아래의 모든 파일에는 그룹 OTHERS에 대한 충분한 권한이 있습니다. 그러나 당시 모든 htdocs 파일은 root.root 소유였습니다. 따라서 이 "모드"에서 Apache는 URL에 언급되지 않은 경우 index.html을 제공하지 않았습니다.

권한 자체를 변경하지 않고 htdocs 디렉토리와 파일을 SLES(suse Linux enterprise Server)의 "기본값"인 소유자 "wwwrun.www"로 재귀적으로 다시 변경한 순간, 아파치는 평소와 같이 index.html을 다시 제공하기 시작했습니다. 예상되는. 다시 시작할 필요도 없고 아무것도 필요하지 않습니다.

이것이 버그인지 기능인지 알 수 없습니다. 우리가 경험한 것과 문제를 해결한 방법을 알려드리고 싶었습니다.

따라서 htdocs 파일의 소유권을 확인하고 웹 서버 서비스 계정 및 그룹이 해당 파일을 소유하고 있는지 확인할 수 있습니다.

답변3

대신 위치 지시어를 사용해 보세요.

<Location /path/to/htaccess/file/>
    DirectoryIndex index.php
</Location>

관련 정보