Перенаправление на FTP URL с именем пользователя и паролем в Safari - PullRequest
16 голосов
/ 11 августа 2011

У меня проблема с Safari, которую я не смог решить:

<?php
    header("Location: ftp://username:password@somedomain.org/somefile.zip");
?>

Этот фрагмент кода работает в любом браузере (Fx, Chrome, IE7-9), но не впоследний Safari, который сообщает мне, что у меня нет разрешения на просмотр страницы (то есть он перенаправляет на правильную страницу [somedomain.org] с правильным протоколом, но не обрабатывает данные аутентификации).

Интересно, что это работает, когда я копирую его прямо в адресную строку или когда я вставляю <a> -текание клика по нему.Это ошибка Safari или я что-то здесь упускаю, что игнорируют другие браузеры?И если это ошибка Safari, есть ли какое-то решение?

Ответы [ 6 ]

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

Попробуйте:

header('HTTP/1.1 301 Moved Permanently');
header('Location: ftp://username:password@somedomain.org/somefile.zip');

, если это не работает, попробуйте:

echo <<< EOF
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=ftp://username:password@somedomain.org/somefile.zip">
EOF;

Или:

header ('Location: ftp://username:password@somedomain.org/somefile.zip');   
header ('Content-Length: 0');

Последнее решение, которое я получил: http://www.ultrashock.com/forum/viewthread/90424/

0 голосов
/ 07 октября 2011

У меня были похожие проблемы, и оказалось, что это брелок!Если вы когда-либо разрешали safari, omniweb или opera (или процесс ftp в вашем случае) сохранять имя пользователя и пароль в цепочке ключей для этого сайта, это будет отправлено на сайт, а не в URL.FireFox не делает этого, поэтому все работает там, как и ожидалось.

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

Вы получаете какую-либо ошибку или просто не работаете?

убедитесь, что выходной буфер правильно установлен в phpconfig

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

Вы можете заставить PHP-скрипт извлекать файл в фоновом режиме и передавать его в браузер.Например, скрипт PHP действует как прокси.Предполагая, что ваша загрузка не превышает предела PHP вашего веб-сервера, все будет в порядке.

Преимущества: - Перенаправления нет.-Вы не будете выставлять пользователя / пароль в URL.

Если вы решили перенаправить на FTP-сервер, защищенный pw, рассмотрите альтернативные варианты.Есть много способов обеспечить доступ к файлу через http.В наши дни производительность HTTP примерно равна производительности FTP (давно это было не так, и для быстрых сайтов требовался FTP для загрузки).

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

Возможно, вам не хватает некоторой информации header (), которая ему нужна:

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

echo "window.location = 'ftp: // имя пользователя: password@somedomain.org/somefile.zip';";

Попробуйте перенаправить JS и посмотрите, не является ли это PHP или запрос, с которым возникла проблема.

...