質問: **403は返るのですが、仕組みがよく分かりません** --- **試したこと** confファイル ``` error_page 403 /hoge.php; ``` hoge.php ``` > 403 Forbidden nginx/1.12.2 > > > --- **Q1.「403 Forbidden nginx/1.12.2」はどこで設定しているでしょうか?** ・どこかの画面を呼び出している? ・あるいはテキストを動的に表示しているだけ?? ・この画面で「nginx」と「バージョン」を非表示することは出来るでしょうか? ※nginx.confを確認しましたが、403については何も記述されていません **Q2.「403 Forbidden nginx/1.12.2」はどこで設定しているのでしょうか?** ・この画面を直接呼び出すにはどうすれば良いでしょうか? ・現状だと、「意図的に403設定したページ」→「error_page 403 で指定したカスタムページ」 → 「403 Forbidden nginx/1.12.2」という流れになっているのですが、カスタムページ経由ではなく、「403設定したページ」から直接この「403 Forbidden」画面を呼び出すにはどうすれば良いでしょうか? --- **質問背景** ・「403 Forbidden」にこだわりはないので、server毎に指定せず、なるべく簡単に設定したい ・Nginx自体に「403 Forbidden」表示する機能があるのならそれを利用したい
回答: 「403エラーが発生すると、どんな事が起きるのか」 1)error_page 403 /hoge.php; (403のエラーが発生したら、/hoge.phpを表示しなさいという意味)のconfの設定によって、hoge.phpが実行される。 2)hoge.phpでは、http_response_code(403); で、403のHTTPレスポンス("403 Forbidden nginx/1.12.2")が表示される。 なぜ表示されるのかというと、http_response_codeという関数が、そのように作られているから。 == 「この画面で「nginx」と「バージョン」を非表示することは出来るでしょうか?」 どんな表示にするかはhoge.phpで決まります。"403 Forbidden"だけを表示したいなら、hoge.phpを以下のようにすれば良い。 ``` {php? echo('403 Forbidden') ```