web-dev-qa-db-ja.com

Apacheのカスタム404エラーの問題-ErrorDocumentも404です

私は自分のウェブサイトにカスタム404エラーを作成しようとしています。 WindowsでXAMPPを使用してこれをテストしています。

私のディレクトリ構造は次のとおりです。

error\404page.html
index.php
.htaccess

.htaccessファイルの内容は次のとおりです。

ErrorDocument 404 error\404page.html

これにより、次の結果が生成されます。

alt text

しかし、これは機能していません-それはスラッシュの方法やエラー文書の参照方法に関係していますか?

サイトのサイトドキュメントがWebルートのサブフォルダーにある場合、参照方法に違いがある場合

よろしくお願いします。

ファイルを変更すると

ErrorDocument 404 /error/404page.html

リンクしたhtmlファイルの内容ではない次のエラーメッセージが表示されますが、上記のエラーメッセージとは異なります。

alt text

24
Malachi

ErrorDocument ディレクティブは、ローカルURLパスが指定された場合、パスが DocumentRoot から完全に修飾されることを期待します。あなたの場合、これはErrorDocumentへの実際のパスが

ErrorDocument 404 /JinPortfolio/error/404page.html

2回目の試行で修正したとき、代わりにそのページが表示される理由は、http://localhost/error/404page.htmlが存在しないため、エラー処理ドキュメントの検索で404エラーが発生したというビットがあります。

59
Tim Stone

Apacheでは、パフォーマンスの問題により、最近では.htaccessファイルがデフォルトで無効になっています。 .htaccessファイルが有効になっている場合、Webサーバーは、それが存在するすべてのサブディレクトリのすべてのヒットでそれをチェックする必要があります。

注意することが重要だと考えました。とにかく.htaccessファイルを有効にしたい場合、それを説明するリンクがあります:

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

11
Teekin

それらを.htaccessファイルに追加する代わりに、任意の仮想ホストファイルに追加できます。

<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>

どこ error-pagesは、mywebsiteフォルダー内のサブフォルダーで、カスタムエラーページが含まれています。 Apacheを再起動して、変更を確認してください。

$Sudo /etc/init.d/Apache2 reload

デフォルトの404ページとして入力するURLは、絶対またはルートフォルダーからの相対である必要があります。そのため、そのURLを、.htaccessが存在するフォルダーからの相対である書き換えエンジンのURLのように扱うという誤りを犯します。

1
Ekene