我正在开发DNN网站,我需要设置网址重写,以便将MP4视频的特定网址的传入请求重定向到其他位置。如果传入的URL没有*.mp4
文件扩展名,我可以使它工作,但如果扩展名在那里,重定向失败,我得到404。
我通过修改SiteUrls.config
文件来设置重写,以添加以下条目:
<RewriterRule>
<LookFor>.*VIDEOFILENAME.mp4(.*)</LookFor>
<SendTo>http://externalsite/video/VIDEOFILENAME.mp4$1</SendTo>
</RewriterRule>
如果您尝试浏览mydnnsite/VIDEOFILENAME.mp4
,则上述配置会产生404。
但是,如果您尝试浏览mydnnsite/VIDEOFILENAME
(没有*.mp4
扩展名,则以下配置可以正常运行。)
<RewriterRule>
<LookFor>.*VIDEOFILENAME(.*)</LookFor>
<SendTo>http://externalsite/video/VIDEOFILENAME.mp4$1</SendTo>
</RewriterRule>
无论出于何种原因,文件扩展名的存在都会阻止重定向的发生。
答案 0 :(得分:1)
IIS可能设置为将具有.mp4
扩展名的请求路由到静态文件处理程序,并且它根本没有到达DNN来重写请求。您可以查看IIS中的Handler Mappings配置,看看是否有*.mp4
的映射。
理想情况下,你在IIS中进行重定向,而不是将其发送到DNN,只是为了重定向回来。