微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Nginx不显示404页面,而是在root中提供索引文件

我的Nginx服务器没有显示我的404页面.相反,每当尝试访问不存在的页面或目录时,它只是在我的web文件夹的根目录中提供我的索引(.PHP)(没有相应的样式表).

这是我在/ etc / Nginx / sites-available下的’认’文件

server {
listen 80;
listen [::]:80 ipv6only=on;
listen 443 ssl;
listen [::]:443 ipv6only=on ssl;

add_header Strict-Transport-Security max-age=15768000;
ssl_certificate /etc/Nginx/ssl/server.crt;
ssl_certificate_key /etc/Nginx/ssl/server.key;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
ssl_prefer_server_ciphers on;

root /usr/share/Nginx/html;
index index.html index.htm;

location / {
    index index.PHP;
}

if (!-e $request_filename) {
    rewrite ^.*$/index.PHP last;
}

try_files $uri $uri/ =404;

error_page 403 404 405 /error/404.html;
error_page 500 501 502 503 504 /error/50x.html;

location ^~ /error/ {
    internal;
    root /usr/share/Nginx/html;
}

location ~ \.PHP${
    fastcgi_split_path_info ^(.+\.PHP)(/.+)$;
    fastcgi_pass unix:/var/run/PHP5-fpm.sock;
    fastcgi_index index.PHP;
    include fastcgi_params;
}
}

毫无疑问,这对我来说是新手并且过多地摆弄它,所以这里也可能存在其他问题(关于如何 – 关于如何 – 一旦其余部分得到修复 – 我可以强制HTTPS连接会膨胀!).感谢帮助和建设性的意见,谢谢!

解决方法:

如果文件不存在,你将重写为index.PHP,所以它永远不会进入你的try_files或errorpage ……

if (!-e $request_filename) {
    rewrite ^.*$/index.PHP last;
}

^应该被删除,除非你有特定的目的

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐