不同 api 版本的重写规则

Rewrite rule for different api versions

我正在为我的 Slim Api 寻找一个 RewriteRule 来放入 .htaccess,它允许我使用不同的 api 版本,比如:

i.e.
v1/something -> v1/index.php
v1/something/something -> v1/index.php

i.e.
v2/something-> v2/index.php
v2/something/something -> v2/index.php

i.e.
p_v1/something-> p_v1/index.php
p_v1/something/something -> p_v1/index.php

项目文件夹结构如下:

提前感谢您的帮助!

编辑

这个工作正常:

RewriteRule ^ v1/index.php [QSA,L]

但仅适用于 v1(正如预期的那样),我需要找到适用于每个版本的 api。

编辑 2

现在我找到了一种解决方法,即手动添加每个新 api 版本:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^v1/(.*)$ v1/index.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^p_v1/(.*)$ p_v1/index.php

但我仍在寻找自动化的东西。

您尚未定义初始版本指定后的原始请求 URI 由该规则处理,因此我假设您在 index.php 的脚本处理该问题。

RewriteEngine On
RewriteRule ^/([A-z0-9_\.\-]+)/(.*)$ //index.php [NC]

注意。这在第一个斜杠之前采用任何字母数字字符(加上下划线和连字符),并将其用作提供服务的目录。它还允许在版本指示符之后不带任何内容的请求(如 http://example.api.com/v1/