У меня действительно странная проблема
ок, проблема, таким образом,
скажем, у меня есть этот URL
http://www.example.com/?file=WFS010C.part3.rar&url=http://www.fileserve.com/file/vEpByp3/WFS010C.part3.rar
Если я сделаю base64_encode($_GET['url'])
base64_encode($_GET['url'])
результат такой
aHR0cDovL3d3dy5maWxlc2VydmUuY29tL2ZpbGUvdkVwQnlwMy9XRlMwMTBDLnBhcnQzLnJhcg ==
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'] в обоих случаях одинаково, если печатается без кодировки !!!!
как получается, что одна и та же строка дает разные результаты сразу после использования перезаписи? **
Кто-нибудь знает в чем проблема
Вы можете использовать base64_decode, чтобы увидеть, одинаковы ли они.
base64_decode
Фактически:
Первый - http://www.fileserve.com/file/vEpByp3/WFS010C.part3.rar
А второй - http: /www.fileserve.com/file/vEpByp3/WFS010C.part3.rar
Как видите, они не совпадают.
Вы переписываете свой URl, поэтому часть после второго - сохраняется в параметре url. Таким образом, во втором случае вы получите url = http://www.fileserve.com/file/vEpByp3/WFS010C.part3.rar.html. Как и прежде.
-
url
http://www.fileserve.com/file/vEpByp3/WFS010C.part3.rar.html
То, что вы кодируете, выделено жирным шрифтом:
С первым URL
Со вторым 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?
http:/www.fileserve.com/file/vEpByp3/WFS010C.part3.rar
/
Для начала вам необходимо ввести urlencode параметра url.Я предполагаю, что параметр неправильно анализируется из-за недопустимых символов, таких как '/' в нем.