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

Apache2部署Laravel时.htaccess正确却无法重定向不执行PHP如何解决

Ubuntu Apache2 部署Laravel重定向&PHP不执行问题解决方案
  • 启用Apache rewrite模块
    重定向规则依赖rewrite模块,默认状态下该模块未开启,执行以下命令启用:
    sudo a2enmod rewrite
    执行完成后重启Apache服务:
    sudo systemctl restart apache2
  • 修改站点配置开放.htaccess规则权限
    打开Apache站点配置文件(默认路径为/etc/apache2/sites-available/000-default.conf或者自定义的站点配置文件),找到对应Laravel根目录的<Directory>配置段,将AllowOverride None修改为AllowOverride All,同时确保配置段内开放了目录访问权限,示例配置如下:
    return (<Directory /var/www/your-laravel-project-root>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    )
    修改完成后执行配置校验命令确认无语法错误:
    sudo apache2ctl configtest
    校验通过后重载Apache配置:
    sudo systemctl reload apache2
  • 排查PHP无法执行问题
    1. 确认已安装对应PHP版本的Apache适配模块,以PHP8.2为例,安装命令如下:
      sudo apt install libapache2-mod-php8.2
      安装完成后启用PHP模块:
      sudo a2enmod php8.2
    2. 配置Laravel目录权限,Apache运行用户需要拥有storage和bootstrap/cache目录的读写权限,执行以下命令配置:
      sudo chown -R www-data:www-data /path/to/your-laravel-project-root
      sudo chmod -R 775 /path/to/your-laravel-project-root/storage /path/to/your-laravel-project-root/bootstrap/cache
  • 推荐优化配置
    无需在Laravel根目录添加.htaccess做跳转,可直接将Apache站点的DocumentRoot参数修改为Laravel的public目录路径,同步修改对应<Directory>段的路径为public目录路径,安全性更高也能避免重定向异常。修改完成后可删除根目录自行添加的.htaccess文件,直接使用Laravel自带的public/.htaccess规则即可。

内容的提问来源于stack exchange,提问作者Blockchain Pod Lead

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:48:03