首页 > 解决方案 > htaccess 设置 rest api 来处理不存在的目录

问题描述

我过得很糟糕,不确定我是否想多了。我正在尝试在 php 中创建一个 rest API(可能没关系)。我想要格式为 /api/research/data/2020 的 uri。我创建了目录“research”,但下面没有。在 htaccess 文件中,我有

Options +FollowSymLinks

RewriteEngine On

RewriteRule ^/api/research/data/$ /api/research/index.php [NC,L]

我不断得到 /api/research/ 不存在的结果(这是真的,它不存在)。我试图做到字面意思,并尝试了各种模式匹配。我用谷歌搜索并尝试了很多东西,但似乎没有什么能满足我的需求。

主要问题:/api/research/需要存在吗?有吗/api/research/data/?或者如果没有,我可能做错了什么?

谢谢!

2020 年 5 月 26 日更新:我终于得到了这个工作:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^mobile/list/?$ RestController.php?view=all [nc,qsa]
RewriteRule ^mobile/list/([0-9])+/? RestController.php?view=single&id=$1 [nc,qsa]

1) 我遇到的主要问题是从 ^/ 而不是 ^ 开始。一旦我进行了更改,它就立即清除了。我不需要创建任何这些目录。

2) .htaccess 文件需要在 public_html 级别。我把它放在一个试图匹配目标的子目录中。

标签: phprest.htaccessmod-rewrite

解决方案


推荐阅读