IIS 7.5 URL重定向到媒体页面的直接链接

时间:2013-03-21 21:54:43

标签: iis redirect url-rewriting mp3 jplayer

我没有想到我的实施,现在我被卡住了。我正在使用IIS 7.5,URL Rewrite 2.0和Jplayer。

我目前的实现是我让用户将音频文件上传到我的服务器。要收听这些音频文件,用户可以直接链接到浏览器或通过应用媒体播放器中的Android / iOS播放。

现在我已经创建了一个登录页面,我希望将这些用户直接链接到音频文件。着陆页正在使用Jplayer。

问题是我必须使用音频文件的直接链接才能让jplayer播放它。由于我正在重定向直接链接,因此无法加载媒体网址。

这也成为一个问题,因为我的Android和iOS应用程序直接链接到.mp3,以便在其AV播放器中播放文件。有没有办法解决?有更好的实施吗?不知道此时该怎么做。

Jplayer:

        $("#jquery_jplayer_1").jPlayer({
    ready: function (event) {
        $(this).jPlayer("setMedia", {
            mp3: "http://192.168.0.28/flows/t/test/test1334187052069.mp3"
        }).jPlayer("play"); // auto play;
    },
    swfPath: "js",
    supplied: "mp3",
    errorAlerts: true,
    warningAlerts: true,
    wmode: "window"
});

IIS 7.5重定向规则:

<rewrite>
    <rules>
        <rule name="FlowURLs">
            <match url="^flows/[_0-9a-zA-Z-]+/[_0-9a-zA-Z-]+/([._0-9a-zA-Z-]+)" />
            <action type="Redirect" redirectType="Found" url="music.html?flow={R:1}" />
        </rule>
    </rules>
</rewrite>

1 个答案:

答案 0 :(得分:0)

可能的解决方案可能是检查HTTP接受标头,看看是否是浏览器希望加载页面。如果是,那么您将重定向到播放器目标网页。否则,您按原样保留请求,并让它直接加载音频文件。

您可以使用条件检查接受标头:

<rewrite>
    <rules>
        <rule name="FlowURLs">
            <match url="^flows/[_0-9a-zA-Z-]+/[_0-9a-zA-Z-]+/([._0-9a-zA-Z-]+)" />
            <conditions>
                <add input="{HTTP_ACCEPT}" pattern="text/html" />
            </conditions>
            <action type="Redirect" redirectType="Found" url="music.html?flow={R:1}" />
        </rule>
    </rules>
</rewrite>