2017-02-09 2 views
-1

J'ai la pièce suivante dans mon fichier de configuration:Les questions qui ont l'exécution d'un script via cgi dans 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") 
} 

je le module cgi chargé:

server.modules    = (
           "mod_redirect", 
           "mod_access", 
           "mod_cgi", 
           "mod_accesslog") 

Now "CamsOn" et « CamsOff "sont des scripts shell shebanged. Pour être honnête, je l'avais fait auparavant et je l'ai fait fonctionner mais mon serveur s'est écrasé et j'ai perdu mes configs. Pour une raison quelconque, je ne peux pas comprendre pour la vie de moi comment le faire fonctionner. Je fais la redirection, donc je n'ai pas besoin de créer la page "urlpath". La redirection fonctionne très bien à l'intérieur de la pièce $ HTTP ["url"], et j'ai même testé la portion de chaîne de requête en imbriquant une redirection à l'intérieur qui l'amène juste à google.com; urlpath /? cams = sur m'a envoyé à google en conséquence.

Qu'est-ce que je fais mal?

Mise à jour:

je devais le faire fonctionner à l'aide

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

Je pense que la redirection obtenait d'abord analysé, alors quand l'adresse a changé, il ne l'URL plus adaptent et comparaisons de chaînes de queues. Puis-je changer cela? L'idée est de rendre l'urlpath dynamique et mis à jour dans le fichier conf dynamiquement. C'est pourquoi j'ai la redirection vous envoyer à une autre adresse. De cette façon, je n'ai pas non plus besoin de faire du montage html ou de créer des dossiers supplémentaires.

Répondre

0

Qu'est-ce que je fais mal?

a) ne pas faire des sauvegardes

b) ne pas faire des sauvegardes

c) ne pas faire des sauvegardes

d) ne semblait pas dans votre propre histoire post stackoverflow

Voir Can't figure out how to receive http requests using lighttpd

Si vous voulez réduire le nombre de places e dit dans votre fichier de configuration, vous pouvez assigner une valeur à une variable dans lighttpd.conf et utiliser la variable dans lighttpd.conf. Voir var.* en https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_Configuration var.camsurlpath = "/urlpath/" $HTTP["url"] =~ "^" + var.camsurlpath { ... }