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

Laravel8站点URL必须携带index.php否则返回404问题如何解决?

Laravel8 不带index.php访问404问题解决方案

根因定位

你当前配置最明显的遗漏是80端口虚拟主机未配置Directory规则开启AllowOverride All,导致Apache不会读取站点public目录下的.htaccess重写规则,不带index.php的请求无法被转发到Laravel入口文件,所以返回404。
你配置中的443端口虚拟主机已正确配置Directory规则,但80端口部分缺失对应配置。

修复步骤

  • 补全80端口虚拟主机配置,添加Directory块,修改后配置如下:
<VirtualHost *:80>
    ServerName laravel2.tst
    ServerAlias laravel2.bup
    ServerAdmin me@my-email.com
    DocumentRoot /var/www/laravel2.tst/htdocs/public
    <Directory /var/www/laravel2.tst/htdocs/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog /var/www/laravel2.tst/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  • 保存配置后重启Apache服务生效:
    Debian/Ubuntu系统执行:systemctl restart apache2
    CentOS/RHEL系统执行:systemctl restart httpd
  • 验证Laravel配置:打开项目根目录.env文件,确认APP_URL参数值为https://laravel2.tst,不要携带index.php后缀。
  • 权限校验:确保Apache运行用户(通常为www-data或apache)对/var/www/laravel2.tst/htdocs/public目录拥有读取和执行权限,目录下的.htaccess文件权限设置为644即可。
  • 可选排查:如果修改后仍未生效,可以直接将.htaccess中的重写规则写入到VirtualHost的Directory块中,跳过.htaccess读取环节,验证规则是否正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:54:04