Мне редко приходится создавать правила перезаписи apache2, и мне не повезло с входящим запросом с таким синтаксисом:
https://example.com/api/https%3A%2F%2Fexample.com%2Fthis.json%3Ftype%3Dmatch?q=house&colour=red
Я хотел бы переписать это как:
https://example.com/index.php?q=house&colour=red&uri=https%3A%2F%2Fexampl.com%2Fthis.json
Правило, которое я пробовал:
RewriteRule ^/api/([^/]*)$ /index.php?uri=$1 [QSA]
, которая завершается с ошибкой: «Не найдено: не удалось разрешить идентификатор: api% 2Fhttps% 3A (404)»
Замечу, что если вместо "/ api /" следует простая строка, а не URI, этот подход работает. Я посмотрел вокруг на различные вопросы, касающиеся mod_rewrite здесь и с Google, но не нашел ничего похожего на это. Буду признателен за консультацию.