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

配置.htaccess:允许REST API调用,禁止浏览器访问且保留无.php后缀规则

解决方案

要实现API仅允许REST调用、禁止浏览器直接访问,同时保留无.php后缀的规则,你可以在原有.htaccess配置基础上添加请求头校验规则,具体配置如下:

RewriteEngine On

# 仅允许API请求访问,拒绝浏览器直接访问
# 校验请求头:需包含API常见的媒体类型,或为AJAX请求
RewriteCond %{HTTP_ACCEPT} !application/json [NC]
RewriteCond %{HTTP_ACCEPT} !application/xml [NC]
RewriteCond %{HTTP_X_REQUESTED_WITH} !=XMLHttpRequest [NC]
# 针对你的API路径(示例为v1开头)返回403禁止访问
RewriteRule ^v1/ - [R=403,L]

# 原有规则:移除PHP文件后缀
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

规则说明

  • 请求头校验逻辑:
    • 检查Accept请求头是否包含application/json或application/xml(API接口常用的响应格式),若不包含则判定为浏览器访问;
    • 补充校验X-Requested-With头,兼容AJAX发起的API请求;
  • 路径匹配:^v1/指定仅对v1开头的API路径生效,若你的API有其他路径前缀,可修改此规则(比如改为^对所有路径生效);
  • 原有规则保留:继续实现无.php后缀的访问逻辑,不影响现有API调用方式。

测试验证

  • 使用API工具(如Postman、curl)设置Accept: application/json请求头访问myapi.com/v1/stock?shoes=8-11,可正常返回接口响应;
  • 直接用浏览器访问该地址,会收到403 Forbidden错误,实现禁止浏览器访问的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:40:57