nginx 404页面处理以及pathInfo和隐藏index.php总述
今天开发公司官网:http://www.zstime.com/,遇到一个问题,如何在nginx下设置pathInfo以及如何隐藏index.php
这里分别来讲解一下:
一、隐藏index.php
隐藏index.php需要修改nginx的配置文件,如果你是使用vhost的,需要修改如conf/vhost/你的文件名.conf
文件,整个文件如下
server { listen 80; server_name www.zstime.com; index index index.html index.htm index.php; root /alidata/www/ZStimeBro/; error_page 404 /error.html; location / { if (!-e $request_filename){ rewrite ^/(.*)$ /index.php/$1 last; } } location ~ \.php($|/) { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~.*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~.*\.(js/css)?$ { expires 1h; } #α??????? include /alidata/server/nginx/conf/rewrite/default.conf; access_log /alidata/log/nginx/access/default.log;}
其中添加了:
location / { if (!-e $request_filename){ rewrite ^/(.*)$ /index.php/$1 last; } }
二、添加pathInfo支持
nginx本身不支持pathInfo,所有我们需要自己解析URL,将index.php
location ~ \.php($|/) { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
注意:添加pathInfo方法不止一种,但是这种方法相对简单。
其中
~ \.php($|/)
是匹配请求路径中包含.php的url。
三、添加404
404页面的添加折腾了一天,首先需要在nginx.conf中开启
fastcgi_intercept_errors on;
切记要开启这一项,不然不能自定义404页面。
之后修改vhost对应的配置文件,添加:
error_page 404 /error.html;
如此理论上来说是结束了,但是浏览器中试了一下发现还是不行,始终显示 状态吗200!一天的时间就花在这里!!最后查看了很久,才发现不是配置文件的问题了,而是自己使用的框架的问题,我使用的时broPHP,这个小框架居然没有做页面404处理,好吧,参考了http://www.csdn123.com/html/exception/693/693838_693845_693847.htm,搞定了!
总结:有时候,你觉得出问题的地方可能是安全的,你觉得很安全的地方往往出问题!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题











在云服务器上配置 Nginx 域名的方法:创建 A 记录,指向云服务器的公共 IP 地址。在 Nginx 配置文件中添加虚拟主机块,指定侦听端口、域名和网站根目录。重启 Nginx 以应用更改。访问域名测试配置。其他注意事项:安装 SSL 证书启用 HTTPS、确保防火墙允许 80 端口流量、等待 DNS 解析生效。

可以查询 Nginx 版本的方法有:使用 nginx -v 命令;查看 nginx.conf 文件中的 version 指令;打开 Nginx 错误页,查看页面的标题。

启动 Nginx 服务器需要按照不同操作系统采取不同的步骤:Linux/Unix 系统:安装 Nginx 软件包(例如使用 apt-get 或 yum)。使用 systemctl 启动 Nginx 服务(例如 sudo systemctl start nginx)。Windows 系统:下载并安装 Windows 二进制文件。使用 nginx.exe 可执行文件启动 Nginx(例如 nginx.exe -c conf\nginx.conf)。无论使用哪种操作系统,您都可以通过访问服务器 IP

确认 Nginx 是否启动的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 检查端口 80 是否开放;3. 查看系统日志中 Nginx 启动消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

可以通过以下步骤查询 Docker 容器名称:列出所有容器(docker ps)。筛选容器列表(使用 grep 命令)。获取容器名称(位于 "NAMES" 列中)。

如何在 Windows 中配置 Nginx?安装 Nginx 并创建虚拟主机配置。修改主配置文件并包含虚拟主机配置。启动或重新加载 Nginx。测试配置并查看网站。选择性启用 SSL 并配置 SSL 证书。选择性设置防火墙允许 80 和 443 端口流量。

Docker 容器启动步骤:拉取容器镜像:运行 "docker pull [镜像名称]"。创建容器:使用 "docker create [选项] [镜像名称] [命令和参数]"。启动容器:执行 "docker start [容器名称或 ID]"。检查容器状态:通过 "docker ps" 验证容器是否正在运行。

要让 Nginx 运行 Apache,需要:1. 安装 Nginx 和 Apache;2. 配置 Nginx 代理;3. 启动 Nginx 和 Apache;4. 测试配置,确保访问域名后能看到 Apache 内容。另外,需要注意端口号匹配、虚拟主机配置和 SSL/TLS 设置等其他事项。
