私は自分のウェブサイトにカスタム404エラーを作成しようとしています。 WindowsでXAMPPを使用してこれをテストしています。
私のディレクトリ構造は次のとおりです。
error\404page.html
index.php
.htaccess
.htaccessファイルの内容は次のとおりです。
ErrorDocument 404 error\404page.html
これにより、次の結果が生成されます。
しかし、これは機能していません-それはスラッシュの方法やエラー文書の参照方法に関係していますか?
サイトのサイトドキュメントがWebルートのサブフォルダーにある場合、参照方法に違いがある場合
よろしくお願いします。
ファイルを変更すると
ErrorDocument 404 /error/404page.html
リンクしたhtmlファイルの内容ではない次のエラーメッセージが表示されますが、上記のエラーメッセージとは異なります。
ErrorDocument
ディレクティブは、ローカルURLパスが指定された場合、パスが DocumentRoot
から完全に修飾されることを期待します。あなたの場合、これはErrorDocument
への実際のパスが
ErrorDocument 404 /JinPortfolio/error/404page.html
2回目の試行で修正したとき、代わりにそのページが表示される理由は、http://localhost/error/404page.html
が存在しないため、エラー処理ドキュメントの検索で404エラーが発生したというビットがあります。
Apacheでは、パフォーマンスの問題により、最近では.htaccessファイルがデフォルトで無効になっています。 .htaccessファイルが有効になっている場合、Webサーバーは、それが存在するすべてのサブディレクトリのすべてのヒットでそれをチェックする必要があります。
注意することが重要だと考えました。とにかく.htaccessファイルを有効にしたい場合、それを説明するリンクがあります:
それらを.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のように扱うという誤りを犯します。