mp4 в safari не проходит проверку подлинности htaccess
На сайте разработчиков я тестировал файлы mp4 для html5 play в safari. Родной плеер загружает и воспроизводит файлы mp4 нормально, даже без правильного объявления типа MIME. Но, если я добавлю AuthType Basic к моему .htaccess файлы иногда не удается воспроизвести, а иногда играть в quicktime player.
После входа в систему с допустимым пользователем почему эта директива остановит воспроизведение файлов mp4 правильно?
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). Это действительно работает, если я добавляю свои учетные данные для входа в системную связку ключей. Я предполагаю, что запросы на ресурсы не отправляются с надлежащей аутентификацией. Вот почему удовлетворяет любое решение работает: ресурсы больше не нуждаются в идентификация.