2010-07-17 3 views
2

아무도 모르는 내 루트에 폴더가 있습니다. 누군가가 그것을 입력해도 올바른 404를 찾을 수 없습니다.기존 폴더/디렉토리에 404를 지정하십시오.

아마도 이것이 모드 재 작성과 관련이 있을까요?

지금 당장 루트 밖에서 저장할 수 없습니다. 이유를 묻지 마십시오

고마워요!

+2

아마도 어리석은 질문입니다. 웹 브라우저에서 파일을 절대 제공하지 않으면 웹 루트 외부로 파일을 옮기지 않으시겠습니까? – grossvogel

+0

나는 그로스 보겔과 함께 있는데 왜 묻는거야. 문서 루트에서 파일을 이동할 수없는 이유가 무엇인지 생각할 수 없습니다. –

+1

[이 질문을 참조하십시오 (http://stackoverflow.com/questions/214886/how-do-i-hide-directories-in-apache-specifically-source-control) – Gilles

답변

1

질문이 403 번 나오고 있습니까? 셸 액세스 권한이있는 경우 웹 사용자가 디렉토리를 읽거나 통계 할 수 없도록 디렉토리를 chmod 할 수 있습니다.

+0

적어도 404를 던지는 것은 올바른 HTTP 상태가 아닙니다. 204 콘텐츠 없음, 301 리디렉션, 401 보안 추가 또는 403 금지됨이 좋습니다. – Jordan

+3

사실, RFC 2616에서 "이 상태 코드는 서버가 요청이 거부 된 이유를 정확히 밝히지 않으려는 경우 일반적으로 사용됩니다."라고 말합니다. 이는 404를 사용하여 기존 파일이 이유를 밝히지 않고 존재하지 않는다는 "허위"표현을 암시하는 것입니다 (또는 적어도 인식). –

-1

나는이 방법을 사용하지 않았지만 존재하지 않는 것으로 리디렉션 할 수 있다고 생각합니다.

0

사용자 지정 404 페이지를 만든 다음 mod_rewrite를 설정하여 문제가되는 사용자 지정 404 파일에 대한 요청을 다시 작성합니다. 사용자 정의 404 페이지는 일반적으로 좋은 연습이므로 어쨌든이 작업을 통해 하나의 가격으로 2 개를 얻습니다.

0

나는 이 정말로 좋은 이유가 없다면 웹 루트에서 파일을 옮기는 것이 좋습니다. (그리고 나는 당신이 그렇게 확신 할 수 없습니다.)

그렇게하지 않으려는 경우 Tristan의 403 오류 제안을 사용하십시오.

Alias /nameoffile /path/that/doesnt/exist 

이 같은이 함께 할 수있다 : 당신이 그 일을하지에 정말 의도 경우

<Files /path/to/docroot/nameoffile> 
    Order allow,deny 
    Deny from all 
</Files> 

같은 것을, 당신은 존재하지 않는 위치로 URL을 리디렉션 별칭을 사용할 수 있어야합니다 mod_rewrite를은

RewriteRule /nameoffile /path/that/doesnt/exist [L] 

다시 쓰기는 더 많은 계산이지만, 주 서버에 액세스 할 수없는 경우가 유일한 옵션이 될 수 있습니다.

+1

'RewriteRule' 사례를 좀 더 효율적으로 만들려면, 다시 쓰기를 피하고'RewriteRule ^/nameoffile - [R = 404]'를 실행하면 즉시 일치에 404 상태를 던집니다. 그것은'R' 플래그의 의미를 약화 시키지만,'mod_rewrite'는 완전히 받아 들일 수 있다고 생각합니다. –

관련 문제