디렉토리 찾아보기를 비활성화하려면 어떻게합니까?


답변:


420

다음 줄을 포함하는 .htaccess 파일을 만듭니다.

Options -Indexes

하나의 옵션입니다. 다른 옵션은 아파치 구성 파일을 편집하는 것입니다.

이렇게하려면 먼저 다음 명령을 사용하여 열어야합니다.

vim /etc/httpd/conf/httpd.conf

그런 다음 행을 찾으십시오. 옵션 색인 FollowSymLinks

해당 줄을 다음과 같이 변경하십시오. Options FollowSymLinks

마지막으로 파일을 저장하고 종료 한 후 다음 명령으로 Apache 서버를 다시 시작하십시오.

sudo service httpd restart

( 여기 에는 스크린 샷이있는 가이드가 있습니다 .)


14
이것은 심지어 실제 .conf 파일의 <Directory> 또는 <Location>에서도 작동합니다.
chrismarx

1
@ chrismarx 어떤 .conf 파일을 넣을까요? .htaccess가 서버에서 활성화되어 있지 않은 것 같습니다. 어쨌든 사용하지 않는 것이 좋습니다. vps로 모든 서버 파일에 액세스 할 수 있습니다.
Charles John Thompson III

1
나는이 같은 질문에 갇혀 있으며 웹 페이지와 동일한 디렉토리에 코드가있는 .htaccess 파일을 추가했지만 여전히 디렉토리 탐색 경고를 제공합니다. 내가 뭔가 잘못하고 있습니까?
랜디 길먼

10
참고 .htaccess해제에 의해 힘을. AllowOverride지침을 확인하십시오 . 이에 설정되어있는 경우 None, 다음 .htaccess꺼집니다. 을 설정하여 켤 수 있습니다 AllowOverride All. 더 정확하게 All말하면 모든 Apache 지시문을 의미합니다.
율리우스

2
http.conf를 제어 할 수 있으면 더 좋습니다. htaccess로와 성능 저하가
Itay Moav -Malimovka

299

이를 수행하는 가장 좋은 방법은 웹 서버 apache2로 사용하지 않는 것입니다. 내 우분투 14.X에서-오픈 /etc/apache2/apache2.conf변경

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

그런 다음 아파치를 다시 시작하십시오.

sudo service apache2 reload

이것은 apache2가 제공하는 모든 폴더에서 디렉토리 목록을 비활성화합니다.


11
'sudo service apache2 reload '로 충분합니다!
doctorlai

2
@Jay 나는 또한 "Options -indexes"를 시도했지만 Apache는 이후에 시작하지 않을 것입니다. 서버 버전을 실행 중입니다 : Apache / 2.4.18 (Ubuntu). 그러나 "옵션 FollowSymLinks"를 사용하면 Dung의 답변에 따라 작동했습니다. 실행중인 Apache 및 OS 버전이 궁금합니다. 아마도 버전일까요?
MikeyE

@Jay @MikeyE 여기에 동일; Apache는 다음을 사용하여 다시로드되지 않습니다-Indexes
Crimbo

1
@Jay @MikeyE 제거하면 Apache가 다시로드 / 다시 시작하는 것 같습니다FollowSymLinks
Crimbo

2
httpd.conf에 apachectl configtest추가 한 후 실행 Options -Indexes FollowSymLinks하면 다음 오류가 발생합니다. "모든 옵션은 + 또는-로 시작해야합니다. 그렇지 않으면 옵션이 없습니다." 따라서, 무엇을 일을하는 것입니다Options -Indexes +FollowSymLinks
존 T.

45

앞서 언급 한 두 가지 방법 ( /etc/apache2/apache2.conf 편집 또는 .htaccess 파일에 Options -Indexes 추가) 외에 다른 방법이 있습니다.

a2dismod autoindex

나중에 apache2 서버를 다시 시작하십시오.

sudo service apache2 restart

4
당신은 사용할 수 있습니다 a2dismod -f autoindex에 대한 비 차단 명령 실행.
Константин Ван

좋은 핵 옵션! 이것은 Alias아파치가 제공하는 폴더와 다른 경로에서 작동합니다 .
kontextify

부작용이 있는지 알아야합니까?
Naresh Kumar

28

이것으로 .htaccess파일을 편집 / 생성하십시오 /galerias:

Options -Indexes

디렉토리 찾아보기는 mod_autoindex 모듈에서 제공 합니다.


루트 디렉토리에 -Indexes는 apache2.4.33에, 나는 @Sarvar Nishonboyev의 대답은 사용하지 않는 작업을했다 않습니다
펠리페 발데스

1
@FelipeValdes 질문과 답변을주의 깊게 읽으십시오. 우리는 루트 디렉토리가 아니라 하위 디렉토리에 대해 이야기하고 있지 않으며 .htaccess파일 에서 수행 할 수 있도록 요청되었습니다 (가장 성능이 좋지는 않지만 공유 호스팅 계정이나 바쁜 sysadmins에서 종종 유일한 옵션입니다).
Álvaro González

23

당신은 빈 파일을 배치 할 수 있습니다 index.html나열하지 않으려는 각 디렉토리에 . 여기에는 몇 가지 장점이 있습니다.

  • 일반적으로 서버에서 구성이 필요하지 않습니다.
  • 서버 관리자가 서버 구성에서 "AllowOverride None"을 사용하기로 결정하더라도 계속 작동합니다. (사용하는 경우.htaccess파일 에게 "오류 500-내부 서버 오류"메시지가 많이 나타날 수 있습니다.
  • 또한 아파치 구성을 망칠 필요없이 파일을 한 서버에서 다음 서버로 다시 옮길 수 있습니다.

이론적으로, 자동 색인 생성은 다른 파일 ( DirectoryIndex옵션에 의해 제어 됨)에 의해 트리거 될 수 있지만 실제 환경에서는 아직 발생하지 않았습니다.


헤즈 업! 이것은 index.html주로 정의 된 DirectoryIndex 지시문 으로 만 작동 할 수 있습니다 .
nyedidikeke 12

18

중요한 것은 안전한 아파치 웹 서버를 설정하는 것입니다 디렉토리 탐색을 비활성화하는 것입니다. 기본적으로 아파치에는이 기능이 활성화되어 있지만 실제로 필요한 경우가 아니면 항상 비활성화하는 것이 좋습니다. 아파치 폴더에서 httpd.conf 파일을 열고 다음과 같은 줄을 찾으십시오.

Options Includes Indexes FollowSymLinks MultiViews

그런 다음 단어 색인을 제거하고 파일을 저장하십시오. 아파치를 다시 시작하십시오. 그게 다야


1
완전한. 전체 시스템을 비활성화하십시오. 이것이 기본적으로 활성화되어있는 이유는 무엇
인지 모르겠습니다

1
이것은 우분투 (apache2.conf)에서 나를 위해 일했지만 .htaccess 옵션 -Indexes는 그렇지 않았습니다.
Danniel Little

이것은 우분투 (/etc/apache2/apache2.conf)에서 나를 위해 일했지만 .htaccess 옵션 -Indexes는 그렇지 않았습니다.
user2875289

5

httpd.conf 파일을 수정하여이 문제를 해결하고 여러 옵션 지시문이있는 경우 각 지시문 앞에-또는 +를 추가해야합니다. 예:

옵션-색인 + FollowSymLinks


3

이것은 대답이 아니라 내 경험입니다.

내 우분투 12.04 apache2 Indexes에서 apache2.conf 또는 httpd.conf를 찾지 못했습니다 sites-available/default. 제거한 후에는 디렉토리 목록이 표시되지 않습니다. 를 위해해야 ​​할 수도 있습니다 sites-available/default-ssl.


2

.htaccess 파일을 열고 다음 코드를 입력하십시오

Options -Indexes

"옵션-인덱스"단어를 입력 한 후 파일이 빈 줄로 끝나도록 ENTER 키 (또는 Mac을 사용하는 경우 RETURN 키)를 누르십시오.


2

이것을 .htaccess 파일에 추가하십시오 :

Options -Indexes

어떤 이유로 든 작동하지 않으면 .htaccess 파일에서 다음을 시도하십시오.

IndexIgnore *

1

@GauravKachhadiya의 답변을 완료하려면 :

IndexIgnore *.jpg

"숨기기 만" 인덱싱에서 .jpg 확장자 파일 합니다.

IndexIgnore 지시문은 와일드 카드 표현식을 사용하여 디렉토리 및 파일과 일치시킵니다.

  • 별표 문자 인 경우 문자열의 모든 문자와 일치합니다 (예 : foo 또는 foo.extension). 다음 예에서 디렉토리 목록을 끄고 색인에 파일 또는 디렉토리가 표시되지 않습니다.

    색인 무시 *

또는 디렉토리 목록에서 임시 파일을 숨기려면 다음을 사용할 수 있습니다.

IndexIgnore *.php

* .php =>는 모든 문자로 시작하고 .php로 끝나는 문자열과 일치합니다

위의 예는 .php로 끝나는 모든 파일을 숨 깁니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.