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

如何在LiteSpeed Web Server中使用.htaccess配置PHP API路由

LiteSpeed下修复PHP API路由的.htaccess配置方案

你这套在Apache正常运行的路由规则到LiteSpeed失效,核心原因是LiteSpeed对Rewrite规则的解析逻辑和Apache存在细节差异,尤其是针对真实文件/目录的判断、URL匹配范围的处理。下面是适配LiteSpeed的修改方案,同时兼容Apache:

Options -MultiViews
RewriteEngine On

# 可选:将带尾部斜杠的URL重定向到无斜杠版本,避免重复路由
RewriteRule ^(.*)/$ $1 [L,R=301]

# 仅当请求的不是真实文件/目录时,转发到API入口文件
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ quizAPI.php?url=$1 [QSA,L]

关键修改说明

  • 新增RewriteCond条件:LiteSpeed默认会优先匹配真实存在的文件或目录,这两行规则确保只有访问不存在的路径时才触发API路由,避免静态资源(如图片、JS)被错误转发到quizAPI.php。
  • 调整匹配规则:把原规则的^(.+)$改为^(.*)$,.*能匹配包括空字符串在内的所有路径,兼容根路径访问的场景,同时覆盖/users/get这类不带斜杠的URL。
  • 尾部斜杠重写(可选):统一URL格式,避免同一个API接口出现/users/get和/users/get/两个地址,也能减少路由匹配的歧义。

验证与注意事项

  1. 确认LiteSpeed已启用mod_rewrite模块(大部分商用主机默认开启,若未生效可联系主机服务商开启)
  2. 检查虚拟主机配置中是否设置了AllowOverride All,确保.htaccess文件能生效
  3. 在quizAPI.php中,你可以通过$_GET['url']获取完整路由路径,比如访问example.com/users/get时,$_GET['url']的值为users/get,以此实现路由分发逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:30:55