我的配置文件中有以下部分:
cgi.assign = ( ".sh" => "" )
$HTTP["url"] =~ "^/urlpath/" {
$HTTP["querystring"] =~ "cams=on" {
cgi.assign = ( "" => "/scriptpath/CamsOn" )
}
$HTTP["querystring"] =~ "cams=off" {
cgi.assign = ( "" => "/scriptpath/CamsOff" )
}
url.redirect = ( "^/urlpath/" => "http://somewebsite" )
}
我已加载cgi模块:
server.modules = (
"mod_redirect",
"mod_access",
"mod_cgi",
"mod_accesslog" )
现在" CamsOn"和" CamsOff"是shebanged shell脚本。说实话,我以前做过这个并且让它工作但我的服务器崩溃了,我丢失了我的配置。出于某种原因,我不能为我的生活找到如何让它发挥作用。我进行重定向,所以我不必实际创建" urlpath"页。重定向在$ HTTP [" url"]部分内正常工作,我甚至通过在内部嵌套重定向来测试查询字符串部分,只需将其转到google.com; urlpath /?cams = on相应地发送给谷歌。
我做错了什么?
更新
我是用
让它工作的$HTTP["url"] =~ "^/urlpath/" {
$HTTP["querystring"] =~ "cams=on" {
cgi.assign = ( "" => "/scriptpath/CamsOn" )
}
$HTTP["querystring"] =~ "cams=off" {
cgi.assign = ( "" => "/scriptpath/CamsOff" )
}
}
我认为重定向首先被解析,所以当地址发生变化时,它不再适合URL和查询字符串比较。我可以改变吗?我们的想法是使urlpath动态化并在conf文件中动态更新。这就是我将重定向发送到另一个地址的原因。这样我也不需要进行html编辑或创建其他文件夹。
答案 0 :(得分:0)
我做错了什么?
a)没有备份
b)没有进行备份
c)没有进行备份
d)没有查看自己的stackoverflow帖子历史记录
请参阅Can't figure out how to receive http requests using lighttpd
如果要减少配置文件中编辑的位置数,可以在lighttpd.conf中为变量赋值,并使用lighttpd.conf中的变量。请参阅var.*
https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_Configuration
var.camsurlpath = "/urlpath/"
$HTTP["url"] =~ "^" + var.camsurlpath {
...
}