htaccess QUERY_STRING urldecode

У меня есть проблема с .htaccess и QUERY_STRING.

Я пытаюсь перенаправить URL-адрес с помощью моего htaccess, который выглядит следующим образом:

http://mydomain.tld/out/http%3A%2F%2Fotherdomain.tld%3Fparam%3D0

на

http://otherdomain.tld?param=0

Я использую RewriteCond и RewriteRule с REQUEST_URI для перенаправления URL-адреса, и все работает нормально, поскольку URL-адрес REQUEST_URI по умолчанию декодируется в htaccess.

Однако, когда я отправляю ссылку на Hotmail по электронной почте, URL-адрес Hotmail расшифровывает косые черты и вопросительный знак. Результат выглядит так:

http://mydomain.tld/out/http%3A//Fotherdomain.tld?param%3D0

Итак, htaccess берет ссылку и пытается перенаправить ее, но из-за вопросительного знака htaccess «думает», что все, что стоит за вопросительным знаком, - это QUERY_STRING.

Проблема: apache2 не кодирует запрос QUERY_STRING. Итак, что происходит, так это то, что htaccess перенаправляется на

http://otherdomain.tld?param%3D0

, что терпит неудачу.

Итак, мой вопрос:

Как я могу указать htaccess, что он должен либо расшифровать URL-адрес QUERY_STRING, либо использовать полный запрошенный URL-адрес (как с кодированием, так и с кодированием), включая часть после вопросительного знака

Заранее спасибо!

Ура

6
задан sladda 30 August 2011 в 16:25
поделиться