2012-04-20 15 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」 - 要求の実行はライン100

に /var/www/htmlと設定/テストに失敗した私は、次のように行われていることを確認しています

0 httpd.confの
  1. php.iniの

    include_path = ".:/var/www/error"

  2. <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> 
    
  3. Apacheがエラーフォルダやファイルへのアクセスを読みました。

何が原因でこの問題を解決できますか?

+0

理由ではない通常の404ページとヘッダーの場所? –

+0

@ダゴン。リダイレクトの代わりにそのページに404エラーを表示したいからです。 –

+0

あなたの質問は "リダイレクトユーザー"と私はちょうど混乱していると思います。 –

答えて

2

は、仮想からルートフォルダを削除してください:

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

一時的な+1。私はこれまでに 'virtual'を使っていませんでしたが、*ファイルパスではなく* URLパス*のように見えるドキュメントを見てください。これは* Apache *サブリクエストであるため意味があります。 – deceze

+0

あなたは素晴らしいです。できます!誰かがこのサブリクエストに 'var =" REDIRECT_STATUS "を注入する方法を知っていますか? 404の代わりにnoneを表示しています。ありがとう! –

関連する問題