

**403は返るのですが、仕組みがよく分かりません**

* * *

**試したこと**

confファイル

[code]

    error_page 403 /hoge.php;
    
[/code]

hoge.php

[code]

    <?php
    http_response_code(403);
    
[/code]

ブラウザ画面

> 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」表示する機能があるのならそれを利用したい


CC BY-SA 3.0
2018-04-10T11:26:35.910
43129
2018-04-10T12:51:31.740
7886
question
nginx
Nginxでレスポンスコード403を返したいのですが…


「403エラーが発生すると、どんな事が起きるのか」  
１）error_page 403 /hoge.php;
（403のエラーが発生したら、/hoge.phpを表示しなさいという意味）のconfの設定によって、hoge.phpが実行される。  
２）hoge.phpでは、http_response_code(403); で、403のHTTPレスポンス("403 Forbidden
nginx/1.12.2")が表示される。  
なぜ表示されるのかというと、http_response_codeという関数が、そのように作られているから。

＝＝  
「この画面で「nginx」と「バージョン」を非表示することは出来るでしょうか？」  
どんな表示にするかはhoge.phpで決まります。"403 Forbidden"だけを表示したいなら、hoge.phpを以下のようにすれば良い。

[code]

    {php?
       echo('403 Forbidden')
    
[/code]


CC BY-SA 3.0
2018-04-10T12:51:31.740
43136
2018-04-10T12:51:31.740
217
43129
answer