2017-02-09 53 views
-1

运行脚本有问题,我已经在我的配置文件中的以下部分:通过CGI在lighttpd的

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 =就此发送给我相应的谷歌。

我在做什么错?

更新:

我得到它使用

$HTTP["url"] =~ "^/urlpath/" { 
    $HTTP["querystring"] =~ "cams=on" { 
    cgi.assign = ("" => "/scriptpath/CamsOn") 
    } 
    $HTTP["querystring"] =~ "cams=off" { 
    cgi.assign = ("" => "/scriptpath/CamsOff") 
    } 
} 

我认为重定向渐渐首先分析工作,所以当地址改变了,它不再符合网址和查询字符串比较。我可以改变这个吗?这个想法是使urlpath动态变化并在conf文件中更新。这就是为什么我将重定向发送给另一个地址。这样我也不需要做HTML编辑或创建额外的文件夹。

回答

0

我在做什么错?

一)未进行备份

二)没有做备份

C)没有做备份

d)在自​​己的计算器后的历史不看

请参阅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 { ... }