1

我在一个 DNN 站点上工作,并且我需要设置 URL 重写,以便将对 MP4 视频的特定 URL 的传入请求重定向到不同的位置。如果传入的 URL 没有*.mp4文件扩展名,我可以让它工作,但如果扩展名存在,重定向失败,我得到 404。

SiteUrls.config我通过修改文件添加以下条目来设置重写:

<RewriterRule>
    <LookFor>.*VIDEOFILENAME.mp4(.*)</LookFor>
    <SendTo>http://externalsite/video/VIDEOFILENAME.mp4$1</SendTo>
</RewriterRule>

如果您尝试浏览到 ,上述配置会导致 404 mydnnsite/VIDEOFILENAME.mp4

但是,如果您尝试浏览到mydnnsite/VIDEOFILENAME(不带*.mp4扩展名) ,则以下配置可以正常工作。

<RewriterRule>
    <LookFor>.*VIDEOFILENAME(.*)</LookFor>
    <SendTo>http://externalsite/video/VIDEOFILENAME.mp4$1</SendTo>
</RewriterRule>

无论出于何种原因,文件扩展名的存在都会阻止重定向发生。

4

1 回答 1

1

IIS 可能设置为将带有.mp4扩展名的请求路由到静态文件处理程序,并且它根本没有到达 DNN 来重写请求。您可以查看 IIS 中的 Handler Mappings 配置,看看是否有*.mp4.

无论如何,理想情况下,您应该在 IIS 中进行重定向,而不是将其发送到 DNN,而只是为了重定向回来。

于 2013-09-27T16:55:15.813 回答