У меня есть следующий файл .htaccess.
<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 %{QUERY_STRING} ^$
RewriteRule ^/([^/]+)/([^/]+)$ $1/$1.php?endpoint=$2 [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ $1/$1.php?endpoint=$2&id=$3 [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ $1/$1.php?endpoint=$2&id=$3&endpoint2=$4 [L]
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([^/]+)$ $1/$1.php [L]
RewriteRule ^([^/]+)/([^/]+)? $1/$1.php?endpoint=$2%1 [QSA,L]
RewriteRule ^/([^/]+)/([^/]+)/([^/]+)? $1/$1.php?endpoint=$2&id=$3%1 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)? $1/$1.php?endpoint=$2&id=$3&endpoint2=$4%1 [QSA,L]
</IfModule>
Я хочу переписать конечные точки API (чистый формат URL с возможным запросом в конце последнего токена) в формат строки запроса полностью, как показано ниже.
Пример
api/users/123/actionitems
в настоящее время читает
api/api.php?endpoint=users&id=123&endpoint2=actionitems
{
endpoint: users,
id: 123,
endpoint2: actionitems
}
Но я тоже хочу конвертировать
api/users/123/actionitems?test=3
в
api/api.php?endpoint=users&id=123&endpoint2=actionitems&test=3
{
endpoint: users,
id: 123,
endpoint2: actionitems,
test: 3
}
Это не работает. Я получаю только
api/api.php?endpoint=users&id=123&endpoint2=actionitems
когда я печатаю
/api/users/123/actionitems?test=3
{
endpoint: users,
id: 123,
endpoint2: actionitems
}
И только когда я набираю /api/users/123/actionitems&test=3
вместо знака вопроса (/api/users/123/actionitems?test=3
) в моем запросе, это работает.
Как мне заставить это работать?