2012-04-20 2 views
4

조건이 충족되면 "찾을 수 없음"페이지가있는 사용자에게 PHP 함수 virtual()을 사용하여 오류 문서를 올바르게 표시하려고합니다. 이것은 내가 스크립트에 쓴 것입니다 :PHP로 Apache 하위 요청을 수행하는 방법은 무엇입니까?

// if condition is met 
virtual('/var/www/error/HTTP_NOT_FOUND.html.var'); 

어떻게 든, 빈 페이지가 표시되고이 내가받은 경고입니다 :

PHP 경고 : 가상() : ' 을 포함 할 수 없습니다/var에/www /에서 오류/HTTP_NOT_FOUND.html.var '- 요청 실행이 줄에/HTML/테스트 은/var/www가 실패 100

나는 다음과 같은 수행되고 있음을 확인했다 :

0 아파치 오류 폴더 및 파일에 대한 액세스를 읽기

<IfModule mod_negotiation.c> 
<IfModule mod_include.c> 
<Directory "/var/www/error"> 
    Options +Includes 
    AddOutputFilter Includes html 
    AddHandler type-map var 
    Order allow,deny 
    Allow from all 
</Directory> 
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var 
</IfModule> 
</IfModule> 
  • php.ini 파일에서

    1. , httpd.conf 파일에서 include_path = ".:/var/www/error"

    2. .

    경고의 원인과 해결 방법은 무엇입니까?

  • +0

    왜 일반 404 페이지 헤더 위치? –

    +0

    @Dagon. 리디렉션 대신 404 오류가 표시되기를 원하기 때문입니다. –

    +0

    귀하의 질문에 "사용자를 리디렉션"이라고 말하면 나는 혼란스러워합니다. –

    답변

    2

    가상에서 루트 폴더를 제거하십시오 :

    virtual('/error/HTTP_NOT_FOUND.html.var'); 
    
    +1

    임시 +1. 나는 지금까지'virtual'을 사용하지 않았지만 문서를 보니 URL 경로 *가 필요하지만 파일 경로는 필요하지 않습니다. Apache * 하위 요청이므로 이해가됩니다. – deceze

    +0

    당신은 위대합니다. 그것은 작동합니다! 여러분 중 누군가가'var = "REDIRECT_STATUS"를이 하위 요청에 삽입하는 방법을 알고 있습니까? 404 대신 아무 것도 표시하지 않습니다. 감사합니다! –

    관련 문제