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

Apache部署Laravel API遇内部服务器错误,.htaccess标签不匹配求助

问题根源

你的.htaccess文件存在语法错误:第一个<IfModule mod_rewrite.c>标签已闭合,但文件末尾又多出一个无对应开头的</IfModule>,导致标签不匹配;同时,该.htaccess位于public目录下,开头的RewriteCond %{REQUEST_URI} !^public和RewriteRule ^(.*)$ public/$1 [L]规则完全多余,会引发请求路径混乱。

修复步骤

1. 替换正确的public目录.htaccess代码

将C:/Apache24/htdocs/ErenA/public/.htaccess的内容替换为以下标准Laravel配置,确保标签配对且规则正确:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

2. 启用Apache mod_rewrite模块

打开httpd.conf文件,找到以下行并移除开头的#注释:

#LoadModule rewrite_module modules/mod_rewrite.so

修改后:

LoadModule rewrite_module modules/mod_rewrite.so

3. 验证站点目录配置

确保httpd.conf中针对C:/Apache24/htdocs/ErenA/public的目录配置块正确设置了权限:

<Directory "C:/Apache24/htdocs/ErenA/public">
    AllowOverride All
    Require all granted
</Directory>

4. 重启Apache服务

所有配置修改完成后,必须重启Apache服务才能生效。

额外检查
  • 确保Laravel项目的storage和bootstrap/cache目录拥有读写权限,这两个目录权限不足也会引发500错误。
  • 测试时使用浏览器无痕模式,避免301重定向缓存干扰结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:50:25