laradockを使ってPHPアプリケーションを作成しています。laravelは5.5です。
ありえないURLにアクセスされた時は404ページを表示させたいのですが上手く行きません。
lardock/nginx/sites/default.conf では
server
1 2 listen 80 default_server; 3 listen [::]:80 default_server ipv6only=on; 4 5 server_name localhost; 6 root /var/www/yyux/laradock/uiux/public; 7 index index.php index.html index.htm; 8 9 auth_basic "basic auth"; 10 auth_basic_user_file /etc/nginx/sites-available/.htpasswd; 11 12 location / { 13 try_files $uri $uri/ /index.php$is_args$args; 14 } 15 16 location ~ .php$ { 17 try_files $uri /index.php =404; 18 fastcgi_pass php-upstream; 19 fastcgi_index index.php; 20 fastcgi_buffers 16 16k; 21 fastcgi_buffer_size 32k; 22 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 23 include fastcgi_params; 24 } 25 26 location ~ /.ht { 27 deny all; 28 } 29 30 location /.well-known/acme-challenge/ { 31 root /var/www/letsencrypt/; 32 log_not_found off; 33 } 34}
となっていてありえないURLにアクセスするとルートディレクトリが表示されます。
# try_files $uri $uri/ /index.php$is_args$args;
という風にこの部分をコメントアウトすると404 not foundになるのですがnginx自体のエラーページが表示されてしまいます。
ここでルートディレクトリではなくエラーページにリダイレクトするようにすれば一応は解決するのですが、それだとURLが変わってしまうためできれば避けたいです。
larvelの公式ドキュメントには404.blade.phpを用意すれば済むという話だったのですが、おそらくnginxの設定の影響でこうなっている?と思っているのですが、こちらどうすればよいのでしょうか…
情報として足りない部分ありましたら教えてください。よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/25 00:28