Я создал следующий файл .htaccess, включающий индекс каталога и резервный ресурс, и поместил его в корневой каталог, чтобы отлавливать каждый запрос от корня.
Кроме того, я поставил параметр rewritebase / api и InheritDown, чтобы ограничить область применения этих правил, а также рекурсивно распространяться до уже существующих каталогов, чтобы они (и вложенные файлы) не включались в процесс перезаписи по запросу.
Это привело к успешному результату в $ _GET, где в строке запроса было одинаковое количество пар lhs (ключ) = rhs (значение) при условии, что они были введены как / api / lhs / rhs / lhs / rhs в запрос.
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
DirectoryIndex api.php
FallbackResource index.php
RewriteCond %{REQUEST_URI} ^/api
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/api
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*/)([^/]+)/([^/]+) $1?$2=$3&%1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([^/]+)/ $1/$1.php?%1 [L]
</IfModule>
RewriteBase /api
RewriteOptions InheritDown