У меня есть следующий URL: https://example.com/nl/products/stones?color_id=13
Я хочу, чтобы он был: https://example.com/nl/products/stones/white-stones
Если это просто конкретный идентификатор / URL, то вам, вероятно, нужно проверить этот конкретный идентификатор и URL в вашей директиве? Это также значительно упрощает требование.
Например:
RewriteCond %{QUERY_STRING} ^color_id=13$
RewriteRule ^nl/products/stones$ %{REQUEST_URI}/white-stones [QSD,R=302,L]
Флаг QSD
(Apache 2.4+) отбрасывает исходную строку запроса из запроса.
Или, возможно, вы хотите сохранить больше параметров строки запроса? Может ли это относиться к любому URL? Это явно не упоминается в вашем вопросе, но ваши директивы намекают на это. Это потребует немного другого подхода.
В своем исследовании я обнаружил, что QSA должен сделать это
QSA
(Query String Append) просто добавляет (т. Е. merges ) строку запроса из исходного запроса к любой строке запроса, которую вы назначаете в подстановке . Это не похоже на то, что вам здесь нужно.