Два знака вопроса и два амперсанда в строке запроса? - PullRequest
0 голосов
/ 03 ноября 2011

Эх, моя строка запроса выглядит так:

http://localhost/index.php?page=public&another=http://www.google.com?omg=tt&nop=asd

И, конечно, я переписываю его с помощью регулярных выражений: регулярное выражение: RewriteRule ^pass-([^=]*)=([^=]*)$ index.php?page=$1&another=$2 [L]

http://localhost/pass-url=http://www.google.com?omg=tt&nop=asd

(1) Но тогда URL становится: http://www.google.com только.

Если я попробую urlencode с этим URL без регулярного выражения:

http://localhost/index.php?page=public&another=http://www.google.com?omg=tt&nop=asd

это эхо:

http%3A%2F%2Fwww.google.com%3Fomg%3Dtt

(2) В этом случае &nop=asd часть пропала.

Итак, как заставить (1) работать и почему (2) это сделать? Самый большой вопрос будет, как передать два вопроса и амперсанд в строке запроса? Любое предложение относительно этой ситуации?

1 Ответ

0 голосов
/ 03 ноября 2011

Проблема в вашем правиле перезаписи. Иметь это так:

RewriteRule ^pass-([^=]*)=([^=]*)$ hw.php?page=$1&another=$2 [L,QSA]

Обратите внимание, что дополнительный флаг QSA, который обеспечит сохранение исходных параметров запроса.

...