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

安装SSL后Laravel API路由出现404无法访问

嘿,我之前切换SSL后也碰到过类似的API路由404问题,折腾了好一会儿才搞定,给你分享下我的解决思路和修正后的配置:

核心问题分析

从你给出的.htaccess代码来看,最大的可能是缺少HTTPS强制跳转规则,或者现有规则没有覆盖API路由的转发逻辑。虽然普通Web路由正常,但API请求可能因为协议不一致(比如仍走HTTP)或者重写规则不完整,导致无法被后端框架正确解析。

修正后的.htaccess配置

把你的配置替换成下面的完整版本,应该能解决问题:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    # 强制所有HTTP请求跳转到HTTPS(关键:消除协议不一致导致的路由异常)
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # 移除尾部斜杠(如果请求的不是文件夹)
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # 处理前端控制器(覆盖所有非文件/非文件夹的请求,包括API路由)
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
关键修复点解释
  • 强制HTTPS跳转:很多时候API请求失败是因为旧的接口调用还在使用HTTP协议,或者浏览器缓存了旧的HTTP路由。这条规则会把所有HTTP请求强制重定向到HTTPS,确保所有请求都走正确的协议。
  • 完整的前端控制器规则:RewriteRule ^ index.php [L]会把所有不是真实文件或文件夹的请求(包括/api/xxx这类API路由)都转发到index.php,只要你的后端框架(比如Laravel、Symfony等)的API路由配置正确,就能被正常解析。
  • 额外排查建议:
    • 检查服务器SSL配置:确保Apache/Nginx的虚拟主机已经正确配置了443端口的SSL证书,没有限制API路径的访问。
    • 清除缓存:浏览器可能缓存了旧的重定向规则,用无痕模式测试或者手动清除缓存后再验证API。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:14:17