有人可以帮我解决我的问题吗?
我正在IIS 7.5和URL-Rewrite 2.0上使用ASPX文件在任何访问条件下获取SSL:
www.somedomain.com - > https://www.somedomain.com
www.somedomain.com/mypage.aspx - > https://www.somedomain.com/mypage.aspx
它运行正常。但是,由于页面加载/播放了一些MP3 / OGG文件,我注意到了:
1-如果页面在SSL中执行,MP3在某些设备(Androids / iPhone / iPad移动设备)中无法播放;
2-如果页面在没有SSL的情况下执行,则通常会发生,100%。
所以,我曾尝试过滤URL-REWRITE中的MP3 / OGG文件(以及PNG / JPG图像),以避免他们在SSL下访问。 我的过滤器是:
<add input="{REQUEST_URI}" pattern="(png|jpg|mp3|ogg)" negate="true" />
<add input="{HTTPS}" pattern="^OFF$" />
我曾尝试对这些文件进行大量过滤设置,如{REQUEST_URI},{URL},{UNENCODED_URL},我发现所有这些设置都无法在SSL下避免这些文件。我使用MICROSOFT NETWORK MONITOR看到了这一点,它显示了在端口443(HTTPS)中加载的所有文件。另一个特点是我从未在那里看到原始文件名(MP3文件和图像)。似乎一切都在SSL设置下。另一个原因是MP3无法在SSL访问中播放,图像延迟加载几秒钟。
我无法使用整个域名/文件夹名称(例如www.mydomain.com/songs/music.MP3)因为我使用的是JPLAYER 2.0而我无法使用整个MP3地址设置此库(该歌曲无法播放) !),但只是它们保留的子文件夹,如下所示(参见mp3和ogg标签):
$("#jquery_jplayer_1").jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
mp3:"audio/" + theSongs[0] + ".mp3",
ogg:"audio/" + theSongs[0] + ".ogg"
});
},
play: function () { // To avoid both jPlayers playing together.
$(this).jPlayer("pauseOthers");
},
swfPath: "Scripts/jPlayer/",
supplied: "mp3, ogg",
volume: 0.25,
cssSelectorAncestor: "#jp_container_1",
wmode: "window"
});
如何避免这种行为?我不想将这些文件(MP3,OGG,JPG,PNG)放在另一个域中以避免URL-REWRITE捕获它们。我需要它们在同一个主项目中,并在其子文件夹(音频和图像文件夹)中。
如何创建入站规则以真正完全丢弃这些文件? 注意:如果我通常使用
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
它也不会播放(或加载)。
我非常感谢你帮助我解决这个问题。 亲切的问候, 大卫