Redirect lighttpd mod_将https重定向到http,专门用于媒体文件类型

Redirect lighttpd mod_将https重定向到http,专门用于媒体文件类型,redirect,lighttpd,Redirect,Lighttpd,我在cent os linux机器上有一个lighttpd 1.4.26 ssl配置,通过HTTPS为HTML5媒体应用程序提供服务 我的目标是通过HTTP应用程序从同一个Web服务器提供媒体文件 如果Web服务器位于并且所有媒体都位于的各个子文件夹中,并且我有通过http提供的页面的html中任何媒体文件的相对链接,那么我希望所有对.mp3、.mp4、.webm和.ogv文件的请求都被重定向到完全相同的URL,但使用http而不是https 我的问题是我不知道如何编写url.redirect规

我在cent os linux机器上有一个lighttpd 1.4.26 ssl配置,通过HTTPS为HTML5媒体应用程序提供服务

我的目标是通过HTTP应用程序从同一个Web服务器提供媒体文件

如果Web服务器位于并且所有媒体都位于的各个子文件夹中,并且我有通过http提供的页面的html中任何媒体文件的相对链接,那么我希望所有对.mp3、.mp4、.webm和.ogv文件的请求都被重定向到完全相同的URL,但使用http而不是https

我的问题是我不知道如何编写url.redirect规则来执行此转换

我试过:

url.redirect = ( "https://^(.*)\.(ogv|mp4|mp3|webm)$" => "http://%1/$1" )
当我访问此URL时:

https://www.media.com/sharedmedia/X-MAC-MINI/Sports/Amazing%20Football%20Skills%20and%20Tricks.ogv
我被永久重定向到301

http://www.media.com/sharedmedia/X-MAC-MINI/Sports/Amazing0Football0Skills0and0Tricks.ogv
然后,它也被301'指定为:

http:///sharedmedia/AFFINEGY-MAC-MINI/Sports/Amazing0Football0Skills0and0Tricks
请注意,第一个url url编码空间中的%20在第一次重定向期间从url中删除,每次都会留下尾随的“0”,我假设它被解释为%2,其中包含一个空字符串,并且http请求也被错误地重定向到另一个甚至不包含主机值www.media.com的url。另外,第二个重定向中没有扩展

然后我尝试了一个有条件的版本:

$HTTP["socket"] =~ ":443$"
{
url.redirect = ( "^(.*)\.(ogv|mp4|mp3|webm)$" => "http://%1/$1" )
}
…这导致lighttpd在启动时崩溃,所以我甚至无法测试它。Lighttpd启动错误消息如下:

Starting lighttpd: 2011-08-31 16:19:15: (configfile.c.907) source: find /etc/lighttpd/conf.d -maxdepth 1 -name '*.conf' -exec cat {} \; line: 44 pos: 1 parser failed somehow near here: (EOL)
2011-08-31 16:19:15: (configfile.c.907) source: /etc/lighttpd/lighttpd.conf line: 331 pos: 1 parser failed somehow near here: (EOL)

知道我做错了什么吗?

以下是我做错的地方:

要在目标IP规则中使用%n符号,您需要一个嵌套IF

我有

$HTTP["socket"] =~ ":443$"
{
url.redirect = ( "^(.*)\.(ogv|mp4|mp3|webm)$" => "http://%1/$1" )
}
但我需要

$HTTP["socket"] =~ ":443$" {
 $HTTP["host"] == (.*) {
 url.redirect = ( "^(.*)\.(ogv|mp4|mp3|webm)$" => "http://%1/$1.$2" )
 }
}
现在。。。http://%1/$1中的%1引用了$http[host]=.*中的匹配项,$1引用了url重定向参数中的匹配项,$2引用了url重定向源中第二组参数的匹配项

是我一个人干的还是这玩意儿完全没有记录?我只能在谷歌上找到人们抱怨无法实现这一点,似乎没有人对它的工作原理有一个单一的答案

我现在在APACHE中也遇到了同样的问题,我也找不到一个关于.htaccess 301重定向的好文档