私は.htaccess
ファイルはルートディレクトリにあり、404.phpファイルもあります。私のコンテンツ.htaccess
ファイルは次のとおりです。
ErrorDocument 404 /404.php
しかし、URLのつづりを間違えると、404.php
は開いていません。代わりに、次のメッセージが表示されます。
見つかりません
要求されたURL /mywebsite/ites.phpは、このサーバーで見つかりませんでした。
さらに、ErrorDocumentを使用して要求を処理しようとしたときに404 Not Foundエラーが発生しました。
しかし、私が試したときErrorDocument 404 google.com
、 動いた。
この回答に対するコメントを統合します。
設定するとき...
ErrorDocument 404 /404.php
/404.php
pathは、htdocsフォルダーのルートへの絶対パスではなく、ファイルシステムのルートである場合があります。これは、設定に基づいて、たとえば/home/htdocs/
または~
等々。
したがって、絶対パスを見つけて、それに応じて設定する必要があります。
あなたの404.php
実際にあなたの.htaccess
ファイル?単純に直接URLとして実行できますか?ファイルはサーバーで読み取り可能ですか?または、ネストされたサブディレクトリにありますか?また、完全なURLを試すこともできます。
ErrorDocument 404 http://mygreat.server/404.php
Apacheの公式ドキュメントはこちら に詳細があります。
次のように ErrorDocument を使用します。
ErrorDocument <3-digit-code> <action>
入力した内容によってトリガーされる3種類のアクションがあります。
アクションは次のように扱われます。
例えば。
カスタムテキスト:ErrorDocument 404 "Oops! We can't find that pesky file. Sorry."
ローカルパス:ErrorDocument 404 /local/path/to/404.php
外部URL:ErrorDocument 404 http://external_url.example.com/server_error.html
ローカルファイルを選択しましたが、おそらくサーバーの観点からは正しくリンクされていません。ローカルサーバーパスはURLに表示されるものではなく、多くの場合~/htdocs/www/domainname/
。
問題は、おそらく404.php
は間違っており、サーバーで見つけることができません。
ちょっとhttpd.confのいくつかの設定を変更できます:-
<Directory />
AllowOverride none
Require all denied
</Directory>
に:-
<Directory />
AllowOverride All
Require all denied
</Directory>
使用できます
ErrorDocument 404 /404.php
Htaccessで