
ドキュメントrootフォルダーで.htaccess追加して、
ErrorDocument 404 /error404.phpを記述し、
同じフォルダーにerror404.php作成した。
内容は、
<?php
header("HTTP/1.1 404 Not Found");
header("Cache-Control: no-cache, must-revalidate");
header("Content-type: text/html; charset=UTF-8");
echo '<!DOCTYPE html><title>404 Not Found</title><p>Page Not Found.';
exit;
?>
テスト環境:
htdocs又は/var/www/html/mypage配下に自分のphpファイルがあります。いくつかフォルダーもあります。
例)
/mypage/css/style.css
/mypage/members/xxx.php etc
/mypage/pictures/111.jpg, etc.
/mypage/index.php
/mypage/menu.php
/mypage/login.php
../css/.., ../members/.., ../pictures/..等のフォルダーはhttpd.confにてIndexesを-Indexes 又は削除で、アクセスできないようにする予定。
hogeというファイルもフォルダー名も存在しないとする。
その時に、
http://localhost/mypage/hoge又はhttp://localhost/mypage/hoge/すると、
ちゃんと”Not found" エラー表示されます。実際の表示:
Not Found
The requested URL /mypage/hoge/ was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.4.34 (Win32) OpenSSL/1.0.2o PHP/5.6.38 Server at localhost Port 80
なんか二重にエラーをキャッチされているような気がしますが、今回知りたい問題ば別の問題です。
問題は、
「http://localhost/mypage/index.php/hoge」や「...index.php」の後ろに「/」だけ入力した場合、indexページが崩れて表示されます。404のエラー表示されません。
Chromeの開発ツール(F12)でコンソールlog確認すると、
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost/mypage/index.php/css/styles.css".
styles.cssのこと?なんで?!
確かに、index.phpの最初の方に以下のようなコードはありますが、存在するぺージやフォルダー以外は404のエラー出してほしい。
index.phpの<head>の部分:
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<title>XXXタイトル</title>
<link rel="stylesheet" href="./css/styles.css">
</head>
<body>
<body>
....
知識・経験お持ちの方、ヒントください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
質問内容をちょっと見落としてましたけど、phpで表示させてるページはドキュメントルート直下のindex.phpだけではないんですね。
mod_rewriteの記述は下記のほうがいいかも。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ¥.php/ - [R=404,L]
</IfModule>
kunadさん
はい、昨夜RewriteRule ^index.php/ - [R=404,L]で404エラー出ること確認しました。
でも他のphpファイルもあって、すべてのファイル一々記述するのかなと思っていました。
今日のお返事で分かりました!
助かりました。
ありがとうございました。
No.1
- 回答日時:
そもそもディレクトリではないindex.phpの直後に「/」を付けてリクエストすることが誤りですので、もしmod_rewriteが使えるようであれば.htaccessに以下を追記してリクエストに「index.php/」が含まれた場合をエラーとしてしまうのが手っ取り早いです。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^index¥.php/ - [R=404,L]
</IfModule>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化けについて
-
日付と年月日を選択するコード...
-
phpでfopen()やfputs()が使えない
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
フォントの色を変えるには?
-
Subversionのリポジトリの削除
-
PHPで`headers already sent`と...
-
サーバーによってはmb_send_mai...
-
「include()」関数の使い方につ...
-
ファイルアップロードの上限を...
-
SELECTの値を保持する
-
UWSCにつきまして
-
VB2008でFTPでのディ...
-
リンク先を隠す方法はないでし...
-
submitボタンの二重送信について
-
PHPの変わった閉じタグの必要性...
-
javamailで220の応答が遅い
-
ある条件に当てはまったときに...
-
Cronで同じ処理を複数同時に実...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化けについて
-
mail()の文字化けについて
-
複数の文字列をファイルに書き...
-
前後の全角スペースを削除する...
-
PHPで地域名のみ変更
-
wordpressのfooter.phpの編集
-
日付と年月日を選択するコード...
-
PHPでのアンケート設置について
-
機種依存文字の文字化けについて
-
charset=UTF-8なのにShift-JIS...
-
どうしたら確認ができますか!?
-
ここでの ②if($su_d<>"")の比較...
-
php エラー
-
html込みの文字列をPHPの変数に...
-
PHP(smarty)についての質問(文...
-
phpでfopen()やfputs()が使えない
-
XMLパースエラー回避方法
-
エラー Warning: Cannot modif...
-
php ログイン
-
外部ファイルを読み込んだhtml...
おすすめ情報