You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel项目Nginx配置:含index.php的URL返回404

Nginx层面拦截所有index.php开头的URL返回404

直接在你的Laravel项目对应的Nginx server配置块里添加一条优先级更高的拦截规则即可,具体操作如下:

  1. 打开项目的Nginx配置文件(通常位于/etc/nginx/sites-available/目录下)
  2. 在原有配置的location /和location ~ \.php$规则之前,插入以下代码:
# 拦截所有以index.php开头的请求,直接返回404
location ~ ^/index.php {
    return 404;
}
  1. 先验证配置语法是否正确:
sudo nginx -t
  1. 验证通过后重载Nginx使配置生效:
sudo nginx -s reload

原理说明

Nginx的location匹配按优先级执行,这条^/index.php的正则匹配优先级高于常规的location /和PHP处理规则。当用户访问domain.com/index.php或domain.com/index.php/page这类URL时,会被直接拦截并返回404,不会进入Laravel的入口文件处理逻辑。

你的原有Laravel标准Nginx配置大概是这样的,确保拦截规则放在它们前面:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
    fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # 根据你的PHP版本和FPM配置调整路径
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    include fastcgi_params;
}

内容的提问来源于stack exchange,提问作者Bunyamin Kurt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:39:36