2010-08-03 5 views
21

내 웹 사이트에 맞춤 404 오류를 만들려고합니다. Windows에서 XAMPP를 사용하여이를 테스트하고 있습니다. 다음과 같이아파치에서 맞춤 404 오류 문제

내 디렉토리 구조는 다음과 같습니다

error\404page.html 
index.php 
.htaccess 

내 htaccess로 파일의 내용은 다음과 같습니다 그러나

alt text http://i38.tinypic.com/24qk0fk.jpg

: 이것은 다음과 같은 결과를 생성

ErrorDocument 404 error\404page.html 

이것은 작동하지 않습니다 - 그것은 w와 관련이 있습니까? ay 슬래시 또는 오류 문서를 참조해야하는 방법은 무엇입니까?

사이트 사이트 문서는 웹 루트의 하위 폴더에 있으며 참조하는 방법과 다른 점이 있습니까?

고맙습니다.

난 내가 링크 한 HTML 파일 안에있는 것이 아닙니다 다음과 같은 오류 메시지가 나타납니다

ErrorDocument 404 /error/404page.html 

할 파일을 변경하는 경우 -하지만 위 목록은 다릅니다 :

alt text http://i32.tinypic.com/kci5b7.jpg

+2

슬래시를 슬래시로 변경해 보셨습니까? 아파치가 역 슬래시를 지원하는지 확실하지 않습니다. –

+0

ErrorDocument 404 /error/404page.html 은 현재 무엇이며 이는 404 예외를 throw합니다. 그러나 이것은 내가 링크 한 html 파일에있는 예외는 아닙니다. – Malachi

답변

53

ErrorDocument 지시어는, 경로가 DocumentRoot에서 정규화 할 것으로 예상 : 어쨌든 .htaccess 파일에 설정하려면, 여기를 설명하는 링크입니다. 귀하의 경우, 이것은 당신이 두 번째 시도에서 수정하면 ErrorDocument의 실제 경로는, 이유는 당신이 http://localhost/error/404page.html이 존재하지 않기 때문에 해당 페이지 대신에 거기에 대한 따라서 비트를 참조

ErrorDocument 404 /JinPortfolio/error/404page.html 

것을 의미 오류 처리 문서를 찾는 데 404 오류가 발생합니다.

+0

그냥 htaccess에서 선언 하시겠습니까? 내가 서버 오류 메시지가있어! –

+0

음, 나는 결코 그것을 얻지 않을 것이다. :(항상 오류가 발생합니다! – Hydro

11

. 성능 문제로 인해 요즘 아파치에서는 .htaccess 파일이 기본적으로 비활성화되어 있습니다. .htaccess 파일을 사용할 수있게되면 웹 서버는 상주하는 모든 하위 디렉토리의 적중마다 파일을 검사해야합니다.

메모하는 것이 중요하다고 생각했습니다. 로컬 URL 경로를 제공 할 때

http://www.tildemark.com/enable-htaccess-on-apache/

1

기본 404 페이지로 입력하는 URL은 절대 경로 또는 루트 폴더의 상대 경로 여야합니다. 그 이유는 일부는 .htaccess가있는 폴더와 관련이있는 다시 쓰기 엔진의 URL처럼 URL을 처리하는 실수를 저지르는 것입니다. 있습니다.

4

.htaccess 파일에 추가하는 대신 가상 호스트 파일에 추가 할 수 있습니다. error-pages가 사용자 지정 오류 페이지를 포함하는의 mywebsite 폴더의 하위 폴더 인

<VirtualHost *:80> 

    DocumentRoot /var/www/mywebsite 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 

    ErrorDocument 404 /error-pages/404.html 
    ErrorDocument 500 /error-pages/500.html 
    ErrorDocument 503 /error-pages/503.html 
    ErrorDocument 504 /error-pages/504.html 

</VirtualHost> 

. 변경 사항을 보려면 아파치를 다시 시작하십시오.

$sudo /etc/init.d/apache2 reload