.如何重定向和传递URI

  • 本文关键字:URI 重定向 ssi shtml
  • 更新时间 :
  • 英文 :


在我的共享服务器上,我试图创建一个自定义404页面。这个特殊的主机使用SHTML,我不能重写。

可以显示uri:

<!--#echo var="REQUEST_URI" -->

我可以使URI成为变量的一部分:

<!--#set var="URI" value="404.php?xxx=$REQUEST_URI" -->

我可以重定向到自己的404.php页面:

<!--#exec cgi="404.php" -->

,但我似乎不能把URI变量的值重定向。这些都不起作用:

<!--#exec cgi="404.php?xxx=$REQUEST_URI" -->
<!--#exec cgi="$URI" -->
<!--#exec cgi="URI" -->

有什么好主意吗?

摘自exec元素的文档:

CGI脚本是给定的PATH_INFO和查询字符串(QUERY_STRING)客户的原始请求;中不能指定这些URL路径。中的脚本可以使用include变量除了标准的CGI环境。

应该优先使用include虚拟元素来执行cgi。特别是,如果您需要向CGI传递额外的参数程序,使用查询字符串,这不能用exec cgi,但是可以用include virtual来完成,如下所示:

<!--#include virtual="/cgi-bin/example.cgi?argument=value" -->

有两种选择:

  • 通过现有的<!--#exec cgi元素使用404.php脚本。它应该能够立即使用相关的CGI变量(例如$_SERVER['REQUEST_URI'])。
  • 更改为使用<!--#include virtual元素并传入所需的变量。

我个人会选择第一个选项。

相关内容

  • 没有找到相关文章

最新更新