【发布时间】:2017-04-12 15:23:22
【问题描述】:
我记得在某处读到可以将参数传递给 perl cgi 脚本,如下所示:
www.example.org/cgiscript/arg1/arg2/arg3
我不记得我在哪里读过它,搜索对我没有帮助,所以任何人都可以告诉我这是否真的有效,如果可以,如何?这是 mod_perl 的东西吗?
【问题讨论】:
我记得在某处读到可以将参数传递给 perl cgi 脚本,如下所示:
www.example.org/cgiscript/arg1/arg2/arg3
我不记得我在哪里读过它,搜索对我没有帮助,所以任何人都可以告诉我这是否真的有效,如果可以,如何?这是 mod_perl 的东西吗?
【问题讨论】:
是的。如果从表单的 URL 调用 CGI 脚本:
http://example.com/path/to/script.cgi/foo/bar
那么路径/foo/bar将在环境变量PATH_INFO中可用。
如果您使用的是 CGI.pm,这也可以在 $q->path_info 中找到。如果你使用 mod_perl,Apache2::RequestRec 有同样的方法。
【讨论】:
<form> 元素将在查询字符串中传递参数,因此这是将参数传递给脚本的事实上的“标准”方式。从配置为使用它的脚本加载子资源时,您还必须使用绝对路径,因为任何相对路径都将相对于查询字符串的最后一部分。
http://example.com/script.cgi/path/info 引用图像为<img src="image.jpeg">,浏览器将尝试从http://example.com/script.cgi/path/image.jpeg 加载它,这可能是不正确的。