根本问题是诸如http://www.mysite.com/thankyou?orderno=123这样的 URL在 Lotus Domino 网站中不起作用,因为 ? 是 Domino Web 引擎的特殊字符(例如 ?openagent、?opendatabase)。你也不能使用http://www.mysite.com/(thankyou)?openagent?orderno=456(我试过),在这两种情况下你得到的都是 404 page not found 错误和一个多米诺日志错误“don'不了解网址”。这个问题最初是寻求 Perl 的帮助来解决问题,但我无法在我的 webfusion 社区服务器上运行 Perl 脚本,但幸运的是,这个简单的 php 脚本很快就成功了:
<?php
$params = "";
$url = "http://www.mywebsite.co.uk/";
$path = "wpx/website.nsf/httpagent?openagent";
if($_GET) {
$kv = array();
foreach ($_GET as $key => $value) {
$kv[] = "$key=$value";
}
$params = join("&", $kv);
}
print "<script>window.location.href=\"" . $url . $path . "&" . $params . "\"</script>";
?>
该脚本放置在我的 webfusion 服务器上的子域下,该子域有效地将 url 转换为 Domino 可以处理的格式,格式 ?openagent&orderno=456 很容易由 java 或 Lotusscript 代理处理,参数是从 CGI Request_Content 字段中提取的.
重定向意味着我现在不需要直接操作 domino 数据库中的数据,这也意味着除了 url 翻译脚本之外,所有网站代码都在 domino 数据库中。