mp4 в safari не проходит проверку подлинности htaccess


На сайте разработчиков я тестировал файлы mp4 для html5 play в safari. Родной плеер загружает и воспроизводит файлы mp4 нормально, даже без правильного объявления типа MIME. Но, если я добавлю AuthType Basic к моему .htaccess файлы иногда не удается воспроизвести, а иногда играть в quicktime player.

После входа в систему с допустимым пользователем почему эта директива остановит воспроизведение файлов mp4 правильно?

6 6

6 ответов:

Все та же проблема. некоторые люди решали ее, добавляя типы мимов к своим .htaccess файл (не работает для меня):

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/mp4 .mov
AddType video/webm .webm

В данный момент я использую ваш уже упомянутый "add Satisfy All" в htaccess (см. код ниже):

<FilesMatch mp4>
Satisfy any
order allow,deny
allow from all
</FilesMatch>

Это не совсем решение, так как файлы теперь доступны, если вы знаете прямую ссылку на файлы...для моего случая все еще в порядке, но с нетерпением жду реального рабочего решения!

Я подозреваю, что это связано с тем, как Safari sandboxes воспроизводит мультимедиа. Похоже, что страница аутентифицируется, но видеофайл рассматривается как совершенно отдельный запрос, требующий своего собственного логина. Этот второй запрос проверки подлинности завершается неудачей на определенных конфигурациях, и передача зависает в ожидании учетных данных.

Единственное решение, которое я нашел, которое далеко не идеально, состоит в том, чтобы специально освободить файлы mp4 от аутентификации. Добавьте следующее к сайту .файл htaccess и файлы mp4 будут воспроизводиться без входа в систему.

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

# Exempt movies from password protection to prevent extra login prompts
<Files ~ "\.(mp4|m4v)">
    AddType video/mp4 mp4
    order allow,deny
    allow from all
    satisfy any
</Files>

Примечание: Тильда указывает Apache на совпадение в конце имени файла, а не в домашнем каталоге.

Я смог воссоздать это поведение на Lion (10.7.5) с Safari 6.02. Mountain Lion (10.8.2) с Safari 6.02 представил второе окно аутентификации и правильно воспроизвел видео.

Единственное, в чем я сомневаюсь, так это в том, что серверные mime-типы должны быть явно настроены для воспроизведения mp4. Второе правило .блок htaccess позаботится об этом, на всякий случай.

Я в основном беру то, что предложили @longilong и @joemailer, и сделал более полный вариант для наших целей .htaccess:

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/mp4 .mov
AddType video/x-m4v .m4v
AddType video/webm .webm

# Exempt movies from password protection to prevent extra login prompts
<Files ~ "\.(ogv|mp4|mov|m4v|webm)$">
    order allow,deny
    allow from all
    satisfy any
</Files>

Единственное решение, которое я нашел, - это добавить директиву Satisfy All в каталог, где находится носитель. но, конечно, это потенциально доступно за пределами аутентифицированной области. так что это неприемлемое решение.

Я могу только догадываться. но если вы используете обычную аутентификацию, первое, что происходит, - это ответ вашего сервера с кодом результата 401. Затем всплывающее окно браузера с диалогом имя пользователя/пароль. Теперь у игрока могут возникнуть проблемы с получением правильного контента. Попробуйте решить это с помощью Firefox и плагина Firefox, Чтобы прочитать net-access для проверки. Может быть, вы можете решить эту проблему с помощью аутентификации в первую очередь.

У меня была та же проблема. Я не уверен, почему это так, но я нашел способ получить Safari (я использую версию 6.0.2) для загрузки видеофайлов в подкаталоге защищенного паролем каталога (.аутентификация htaccess). Это действительно работает, если я добавляю свои учетные данные для входа в системную связку ключей. Я предполагаю, что запросы на ресурсы не отправляются с надлежащей аутентификацией. Вот почему удовлетворяет любое решение работает: ресурсы больше не нуждаются в идентификация.