我在应用程序的 assets/audio 目录中使用 .htaccess 来防止直接下载使用soundmanager2播放的 mp3 文件。下面是 .htaccess 的代码,放在 assets/audio 目录下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?quran\.2index\.net [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?quran\.2index\.net.*$ [NC]
RewriteRule \.(gif|jpg|mp3)$ - [R=401]
ErrorDocument 401 /e401.html
AddType audio/mpeg mp3
使用桌面 (Windows 7),任何网络浏览器都可以使用 soundmanager2 播放声音。在以下 URL 上可以找到现场演示:http: //quran.2index.net/viewAyah/1
问题在于 Android 网络浏览器、Android 上的opera 和 iPad 的 Safari(我刚刚测试过的那些)。那些浏览器无法加载 mp3 音频文件并弹出下载文件!
对我来说最奇怪的是,当我注释掉上面提到的 .htaccess 的所有行(除了第一行和最后一行)时,SM2 在 Android 和 iPad 上都可以正常工作了!
我想知道,服务器端 .htaccess 和客户端 Web 客户端之间有什么关系?或者 .htaccess 中有什么问题使 SM2 在 Windows7 桌面上的任何浏览器上都能正常工作,而在 Android 网络浏览器和 iPad 上却不能工作?!有什么建议吗?