кодирование base64 дает мне странные результаты после использования перезаписи URL - PullRequest
0 голосов
/ 30 августа 2011

У меня действительно странная проблема

ок, проблема, таким образом,

скажем, у меня есть этот URL

http://www.example.com/?file=WFS010C.part3.rar&url=http://www.fileserve.com/file/vEpByp3/WFS010C.part3.rar

Если я сделаю base64_encode($_GET['url'])

результат такой

aHR0cDovL3d3dy5maWxlc2VydmUuY29tL2ZpbGUvdkVwQnlwMy9XRlMwMTBDLnBhcnQzLnJhcg ==

после применения этого условия перезаписи

RewriteEngine On
RewriteBase /
RewriteRule ^file-(.*)-(.*)\.html$ index.php?file=$1&url=$2

URL-адрес такой

http://www.example.com/file-WFS010C.part3.rar-http://www.fileserve.com/file/vEpByp3/WFS010C.part3.rar.html

сейчас, если я сделаю base64_encode($_GET['url'])

результат такой

aHR0cDovd3d3LmZpbGVzZXJ2ZS5jb20vZmlsZS92RXBCeXAzL1dGUzAxMEMucGFydDMucmFy

** Обратите внимание, что значение $ _GET ['url'] в обоих случаях одинаково, если печатается без кодировки !!!!

как получается, что одна и та же строка дает разные результаты сразу после использования перезаписи? **

Кто-нибудь знает в чем проблема

Ответы [ 3 ]

1 голос
/ 30 августа 2011

Вы можете использовать base64_decode, чтобы увидеть, одинаковы ли они.

Фактически:

Первый - http://www.fileserve.com/file/vEpByp3/WFS010C.part3.rar

А второй - http: /www.fileserve.com/file/vEpByp3/WFS010C.part3.rar

Как видите, они не совпадают.

1 голос
/ 30 августа 2011

Вы переписываете свой URl, поэтому часть после второго - сохраняется в параметре url. Таким образом, во втором случае вы получите url = http://www.fileserve.com/file/vEpByp3/WFS010C.part3.rar.html. Как и прежде.

То, что вы кодируете, выделено жирным шрифтом:

С первым URL

http://www.example.com/?file=WFS010C.part3.rar&url=http://www.fileserve.com/file/vEpByp3/WFS010C.part3.rar

Со вторым URL вы переписываете его на

http://www.example.com/index.php?file=WFS010C.part3.rar&url=http://www.fileserve.com/file/vEpByp3/WFS010C.part3.rar

ОБНОВЛЕНИЕ Ваш второй URL с кодировкой base64_ закодирован в http:/www.fileserve.com/file/vEpByp3/WFS010C.part3.rar. Примечание один / после http. Вы уверены, что у вас нет опечаток во втором URL?

0 голосов
/ 30 августа 2011

Для начала вам необходимо ввести urlencode параметра url.Я предполагаю, что параметр неправильно анализируется из-за недопустимых символов, таких как '/' в нем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...