> * Roberto De Ioris <[email protected]> [2013-04-03 > 13:20]: >> I have just committed the cgi and cgihelper routing actions. > > Thanks a lot! > >> I am not sure of the implications about SCRIPT_NAME and PATH_INFO >> >> Let me know if there is something wrong > > It would be nice to return a 404 in case a script does not exist, > currently it logs > > uwsgi_cgi_run()/execvp(): No such file or directory > [plugins/cgi/cgi_plugin.c line 868] > invalid CGI output !!! > > and closes the connection. That allows e.g. something like > route-uri = ^/virtual/(.*)$ cgi:/home/gber/cgi-bin/$1
Fixed. > > The handling of PATH_INFO and SCRIPT_NAME does not seem to have > changed, however even in older revisions it does not seem to be > correct at least as I understand it since SCRIPT_NAME is always > empty and PATH_INFO always contains the full path. > In case of a request of > http://127.0.0.1:8000/cgi-bin/index.cgi shouldn't it be like > SCRIPT_NAME=/virtual/test.cgi > PATH_INFO= > rather than > SCRIPT_NAME= > PATH_INFO=/virtual/test.cgi > and in case of http://127.0.0.1:8000/cgi-bin/index.cgi/foo/bar > SCRIPT_NAME=/virtual/test.cgi > PATH_INFO=/foo/bar > rather than > SCRIPT_NAME= > PATH_INFO=/virtual/test.cgi/foo/bar > ? Are you sure about this, i have tested all of the combinations and SCRIPT_NAME and PATH_INFO works exacly in this way: ./uwsgi --http-socket :9090 --http-socket-modifier1 9 --cgi /foo=/root/uwsgi/index2.pl a request for /foo/bar will result in SCRIPT_NAME=/foo PATH_INFO=/bar as well as ./uwsgi --http-socket :9090 --http-socket-modifier1 9 --cgi /foo=/root/uwsgi a request for /index.pl/foo/bar will result in SCRIPT_NAME=/index.pl PATH_INFO=/foo/bar The problem with routing is that we only have SCRIPT_NAME and PATH_INFO passed from the webserver... Maybe we should simply ignore them and let the user defining them via the routing system -- Roberto De Ioris http://unbit.it _______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
