404 Not Found 的常见解决办法

本文介绍了如何解决浏览器端URL与服务器端映射不匹配的问题,包括检查URL一致性、清理项目残留文件、重新编译Java文件及Maven项目的具体步骤。

1.检查浏览器端url与web.xml文件中前端控制器拦截的url是否匹配

2.检查浏览器端url与controller层(@RequestMapping)是否一致

3.将服务器中的web项目重新publish发布一下,注意要clean掉服务器中残余文件

4.java文件可能没有编译完整,点击project中的clean命令,同时保证build automatically命令是勾选的状态,java文件会重新编译

5.maven项目选择run ->maven clean命令,删除掉target文件夹,再重新maven build进行编译

在 Windows 系统下运行的 Nginx 1.15.11 返回 `403 Forbidden` 或 `404 Not Found` 错误,通常是由于配置不当、路径映射错误或文件权限问题导致。以下是详细的解决方案: ### 检查 Nginx 配置文件 确保 `nginx.conf` 文件中的配置正确无误,尤其是 `server` 块内的设置。常见的问题是根目录(`root`)或索引文件路径不正确。 ```nginx server { listen 80; server_name localhost; location / { root html; index index.html index.htm; # 如果需要伪静态支持,可以添加以下重写规则 if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; } } # 处理 PHP 请求 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ``` 此配置中包含了一个用于处理伪静态 URL 的重写规则,适用于 ThinkPHP 等框架的需求 [^2]。 ### 检查文件路径和权限 Nginx 默认的网页文件存放在 `html` 目录下。如果自定义了 `root` 路径,请确认该路径是否存在,并且 Nginx 有读取权限。Windows 上的文件权限管理不同于 Linux,因此请确保 Nginx 进程具有访问目标文件夹的权限。 ### 启动 PHP-FPM 服务 如果你的应用依赖 PHP,还需要启动 PHP-FPM 服务。在 Windows 上可以通过命令行启动: ```bash php-cgi.exe -b 127.0.0.1:9000 -c php.ini ``` 同时确保 `php.ini` 中启用了 `fastcgi` 支持,并且配置了正确的扩展路径。 ### 检查端口占用情况 确保 Nginx 使用的端口(通常是 80)没有被其他程序占用。可以使用以下命令查看端口占用情况: ```bash netstat -ano | findstr :80 ``` 如果有冲突,可以选择更改 Nginx 的监听端口或者停止占用该端口的服务。 ### 日志分析 检查 `logs/error.log` 和 `logs/access.log` 文件,它们通常能提供关于请求失败的具体原因。例如: ```log 2023/09/15 10:20:34 [error] 1234#5678: *1 open() "/path/to/file" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1" ``` 这类日志信息可以帮助快速定位问题所在。 ### Docker 容器部署注意事项 如果是通过 Docker 部署 Nginx,则需要注意挂载卷的权限设置。可以使用具名挂载来确保主机与容器之间的文件同步: ```bash docker run -d -p 80:80 -v C:/nginx/html:/usr/share/nginx/html nginx ``` 这样可以将本地的 `C:/nginx/html` 映射到容器内的 `/usr/share/nginx/html`,并保持数据持久化 [^3]。 ### 示例:完整的 Nginx 配置 下面是一个完整的 `nginx.conf` 配置示例,适用于基本的 Web 服务器环境: ```nginx worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; gzip on; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; } } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } } ``` 以上配置包含了对静态文件的支持、伪静态重写以及 PHP 处理逻辑 [^2]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值