0

カスタム 404 ページを作成したい。

この行のみを含む .htaccess を作成しました:

ErrorDocument 404 /errors/404.html

そして、私のウェブサイトの構造は次のようなものです:

  • エラー
    • 404.html
  • index.php
  • .htaccess
  • 含む
    • header.html

私はいつも404ページでこのエラーを受け取ります:

Not Found

The requested URL /blabla/bg was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

アイデア ?ありがとうございました !

4

1 に答える 1

1

私の推測では、あなたのドキュメント ルートはあなたの場所と同等ではありません.htaccess。残念ながら、ErrorDocumentあなたがいる場所に相対的ではなく.htaccess、代わりにドキュメントルートがどこにあるかに基づいたパスに基づいています(たとえば/var/www/

「相対的な」404エラーページを取得するために過去に使用した1つの(一種のハックな)ソリューションは、次のことです。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.* 404.php [L]

これを行うもう 1 つの (より正しい方法) は、サーバー上の実際のドキュメント ルートからのパス全体を指定することです。

このフル パスを取得するには、ブラウザで 404 ページを開きます (この変数を取得できるように、このページを php ページにします)。$_SERVER['SCRIPT_NAME'] または、ディレクトリ構造の設定についてより多くの知識がある場合. あなたはそれを基にすることができます$_SERVER['DOCUMENT_ROOT']

于 2013-03-31T14:07:01.620 に答える