Написано ли где-то в официальной доке, что флаг [QSA] сам добавляет асперсанд (&) к существующим параметрам? Знаю что вроде как добавляет, и если мы во втором аргументе RewriteRule подготовим строку к параметрам из {query_string}, вручную прописав '&', то получим двойной амперсанд, но только нигде не написано об этом, написано только что там хранятся параметры запроса, однако про амперсанд ни слова.
А второй вопрос, с которым столкнулся:
Везде пишут, что "Если был указан флаг [QSA], параметры запроса будут добавлены в начало %{QUERY_STRING}."
Но при запросе "site.ru/news/?id=4" и правиле "RewriteRule ^news/$ index.php/?type=news [QSA]", мы видим, что вроде как параметры (id=4) добавляются в конец %{QUERY_STRING} (type=news), и итоговый query_string равен "type=news&id=4". Так в начало или в конец добавляются? Или под %{QUERY_STRING} здесь подразумеваются именно параметры пользователя, а под "параметрами" те, которые прописаны во втором аргументе RewriteRule:
Обратите внимание что в верху я выбираю и ? и & что в свою очередь можно и не добавлять
Думаю вам первоначальные настройки делать лучше тут https://donatstudios.com/RewriteRule_Generator , а потом добавлять уже ваши условия.
Так же если вам нужно будет выделить часть гетр запроса и подставить его в рул, то вместо $1 используйте %1
вы не учли того факта что это GET и он не является частью урла а следовательно не попадает в ваше условие.
Я так понимаю Вы имели в виду не весь get, а get-параметры. Да, я знаю что они не попадают в обработку RewriteRule (первый аргумент). Я просто имел в виду, что, если мы вручную пропишем амперсанд во втором аргументе RewriteRule, подготовив его к добавлению %{QUERY_STRING}, напр: RewriteRule ^news/$ /index.php/?type=nes& [QSA]
то мы получим двойной амперсанд в результирующей строке.
Однако, напр., слэш с вопросом (/?) - [QSA] обрабатывает нормально, т.е. все три строки ниже - ИДЕНТИЧНЫ: RewriteRule ^news/$ /index.php [QSA] RewriteRule ^news/$ /index.php/ [QSA] RewriteRule ^news/$ /index.php/? [QSA]
[QSA] добавит по необходимости /?x=1 или ?x=1 или x=1
Потому и хотел спросить, описано ли это где-то в доках, потому что пытался разобраться в доках без тестов, но ничего внятного так и не нашёл, только время потратил.
Виктор Таран, Виктор вы наверное не так поняли вопрос)) У меня нет никакой задачи, это упрощенный синтетический тест для наглядности несколько разного поведения qsa в зависимости от контекста) А вопрос был про то, где подробно описывается qsa, но прошерстив всю доку, я так понял что всё таки нигде, в доке решили обойтись описанием в одну строчку)