【发布时间】:2017-02-12 00:36:46
【问题描述】:
我的配置文件中有以下部分:
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 编辑或创建其他文件夹。
【问题讨论】: