Apache перенаправляет только часть запроса - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь перенаправить строку запроса на URL, не являющийся запросом.Это выглядит примерно так:

Оригинал http://searchtest.help.org/search?client=Cool_Sub&site=Cool_Sub&proxystylesheet=Cool_Sub&q=stackoverflow

Ожидаемый результат https://searchtest.help.org/cool-search/stackoverflow

Я хочу получить только последнюю часть запроса.В этом случае stackoverflow .

Эта часть всегда будет статичной.

search? Client = Cool_Sub & site = Cool_Sub & proxystylesheet = Cool_Sub & q =

Я использую это в моем Apache Vhost

RewriteEngine On

RewriteCond %{REQUEST_URI} ^\/search$

RewriteCond %{QUERY_STRING} ^client=Cool_Sub&site=Cool_Sub&proxystylesheet=Cool_Sub&q=(.*)

RewriteRule ^(.*)$ https://searchtest.help.org/cool-search/%1 [R=301,L]

Однако результаты с этим https://searchtest.help.org/cool-search/stackoverflow?client=Cool_Sub&site=Cool_Sub&proxystylesheet=Cool_Sub&q=stackoverflow

Я пробовал много вариантов вышеупомянутого правила, но без игры в кости.Любая помощь будет благодарна.

1 Ответ

0 голосов
/ 25 сентября 2018

Добавить QSD флаг к вашему RewriteRule

RewriteRule ^(.*)$ https://searchtest.help.org/cool-search/%1 [R=301,QSD,L]

Согласно документации Apache 2.4:

Когда запрашиваемый URI содержит строку запроса, а целевой URI неПоведение RewriteRule по умолчанию заключается в копировании этой строки запроса в целевой URI.Использование флага [QSD] приводит к тому, что строка запроса отбрасывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...