Сбой mp4 в сафари с аутентификацией htaccess - PullRequest
6 голосов
/ 30 мая 2011

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

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

Ответы [ 6 ]

8 голосов
/ 05 февраля 2013

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

Единственное решение, которое я нашел, но оно не является идеальным, - это специально исключить 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 заботится об этом, на всякий случай.

8 голосов
/ 31 января 2012

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

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

в данный момент я использую уже упоминавшееся «добавить удовлетворение всех» в htaccess (см. кодниже):

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

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

4 голосов
/ 17 июля 2014

Я в основном принимаю то, что предложили @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>
2 голосов
/ 13 июня 2011

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

0 голосов
/ 07 декабря 2012

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

0 голосов
/ 30 мая 2011

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

...