Передача QUERY_STRING в RedirectMatch как правило - PullRequest
0 голосов
/ 26 апреля 2019

Необходимо создать правила для mod_rewrite, чтобы обеспечить SEO дружественный API.

Некоторые любят:

https://server.app/api/Toronto/parks/

Должен возвращать результат:

https://server.app/cgi-bin/api.cgi?domain=Toronto&script=parks.cgi

Фон

RedirectMatch работает нормально, но я теряю переменную строки запроса. И не нужно перенаправлять на уродливый URL.

Я пробую RewriteRule безуспешно. Бросить 404 Не найдено.

Примечание:

  • DocumentRoot: /var/www/html
  • Каталог /var/www/html/api, ни псевдоним / ScriptAlias ​​для /api не существует.

Попробуйте 1

RedirectMatch "^/api/(.*)/(.*)/" "/cgi-bin/api.cgi?domain=$1&script=$2.cgi"

Отсутствует переменная Query String в URL-адресах, таких как:

https://server.app/api/Toronto/parks/?other=value

Попробуйте 2

RewriteRule "^/api/(.*)/(.*)/" "/cgi-bin/api.cgi?domain=$1&script=$2.cgi" [QSA]

Ошибка 404 не найдена.

Ожидаемые результаты

Позвонить по номеру:

https://server.app/api/Toronto/parks/?other=value

Должно работать как:

https://server.app/cgi-bin/api.cgi?domain=Toronto&script=parks.cgi&other=value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...