mod_rewrite - два вопросительных знака в URL

seventh

Новичок
Здравствуйте, уважаемые!
Необходимо редиректить запросы вида

Osite.ru/anything.php?sub=anything

на

so.kr/index.php?url=http://site.ru/anything.php?sub=anything
(для дальнейшей работы с полученным url).

Главная проблема в необходимом URL - возможное присутствие двух вопросительных знаков. Mod_rewrite, естественно обрабатывает только первый. Например, так:

Код:
RewriteCond %{HTTP_HOST} ^(.*)osite\.ru$ [NC]
RewriteRule ^(.*)$ http://so.kr/index.php?url=http://%1site.ru$1 [R=301,L,QSA]

Видя, что в URL уже присутствует знак "?", mod_rewrite подменяет второй вопросительный знак на "&".
То есть, URL

Osite.ru/anything.php?sub=anything

редиректится на


а надо, как я уже говорил, на:


Подскажите, пожалуйста, реально ли решить задачу средствами mod_rewrite?
Заранее благодарю за любые подсказки!
 
Во-первых, тебе надо хотеть, чтобы получилась не та ерунда, которую ты хочешь, а вот так:

so.kr/index.php?url=http%3A%2F%2Fsite.ru%2Fanything.php%3Fsub%3Danything

Во-вторых, что естественно, QSA тебе не поможет. Я апача не видел больше 10 лет, читай в документации, как вытащить аргументы query string в переменные. Вот первая попавшаяся ссылка: http://statichtml.com/2010/mod-rewrite-baseon-on-query-string.html
 
надо хотеть, чтобы получилась не та ерунда, которую ты хочешь, а вот так:
so.kr/index.php?url=http%3A%2F%2Fsite.ru%2Fanything.php%3Fsub%3Danything
Вот так легко получается, если добавить флаг "B". Только второй вопросительный знак при этом всё равно становится амперсандом.
А если убрать QSA, то все переменные из URL, естественно, вовсе пропадают.
И обрабатывать каждую переменную, как это предлагается по вашей ссылке, я не могу, поскольку их [переменных] великое множество и они могут быть, а могут и не быть совсем. Поэтому единственный для меня вариант передавать as is - как вошло, так должно и выйти. Один в один. Что бы там ни было.
 
Ну и передавай. Через PHP. Или поставь другой сервер. Но код всё равно придётся писать. Не на PHP, так на Lua или Perl.
 
ай, ну если тебя так устраивает, добавь ? в свой урл перед $1, лишний амперсанд роли не играет
 
Сверху