Перенаправление 301 отбрасывает определенный параметр в группу динамических параметров - PullRequest
0 голосов
/ 07 сентября 2018

Прежде всего я хотел бы извиниться за мой английский.

Я должен сделать серию из 301 переадресации на сайте, где все URL будут изменены.

Примером является следующий

У меня есть URL, который может иметь разные параметры:

Пример 1
www.domain.com/post/?id=specificID&utm_source=val1&utm_campaign=val2&utm_medium=val3

Пример 2
www.domain.com/post/?utm_medium=val3&utm_campaign=val2&utm_source=val1&id=post_slug

Пример 3
www.domain.com/post/?id=specificID&utm_source=val1&utm_campaign=val2

Во всех примерах мне нужно перенаправить на другой URL, сохраняя только параметры 'utm'

Самое важное для этого перенаправления: - Только параметры «id» и «utm_source» безопасны в исходном URL. - Параметр id не обязательно должен быть в целевом URL.

URL-адрес назначения в каждом примере должен быть следующим:

Пример 1
www.domain.com/en/specificID/?utm_source=val1&utm_campaign=val2&utm_medium=val3

Пример 2
www.domain.com/en/specificID/?utm_campaign=val2&utm_source=val1&id=post_slug

Пример 3
www.domain.com/en/specificID/?utm_source=val1&utm_campaign=val2

Правило перезаписи, которое у меня есть, это:

RewriteCond% {REQUEST_URI} /post
RewriteCond% {QUERY_STRING} id=lorem-ipsum
RewriteCond% {QUERY_STRING} utm_source
RewriteRule ^ /en/lorem-ipsum [R=301,L,QSA]

Проблема, с которой я сталкиваюсь в этой конфигурации, заключается в том, что параметр id всегда достигает меня по адресу назначения и является обязательным, что не так.

С этим правилом URL назначения:

Пример 1
www.domain.com/en/specificID/?id=specificID&utm_source=val1&utm_campaign=val2&utm_medium=val3

Пример 2
www.domain.com/en/specificID/?utm_medium=val3&utm_campaign=val2&utm_source=val1&id=post_slug

Пример 3
www.domain.com/en/specificID/?id=specificID&utm_source=val1&utm_campaign=val2

Я знаю, что это происходит со мной под флагом QSA, но, честно говоря, я не могу придумать другой способ сделать это.

Короче говоря, проблема в том, что я никогда не знаю, сколько параметров utm придет на исходный URL-адрес или порядок, в котором они поступают, но я должен хранить их все в целевом URL и отбрасывать только параметр id.

Заранее большое спасибо.

...