我有一个CGI脚本,该脚本在服务器上生成一个文件,然后将浏览器重定向到该新生成的文件。
#!/bin/bash
printf"Content-type: text/html\
\
";
cat /myspecialdir/foo > /httpd/foo.html
echo"<HTML><HEAD><BODY>"
echo"<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">"
echo"<META HTTP-EQUIV="Refresh" CONTENT="1; URL=/foo.html">"
echo"</BODY></HEAD></HTML>"
文件/ myspecialdir / foo包含一些我想放在/httpd/foo.html中的动态内容。然后,我希望脚本在新文件生成后重定向到那里。
我的问题是该脚本不会从浏览器的每次匹配中获取新数据。例如,如果我第一次在IE中访问http://myip/cgi-bin/genfoo.cgi,则会生成数据并将其重定向到foo.html。之后,如果我使用"后退"按钮转到CGI页面,它将不会重新运行,并且会重定向到陈旧的数据。
如何从后退按钮强制CGI脚本执行?
编辑:我尝试使用HTTP标头方法执行此操作,但这似乎不起作用。这是新脚本,我缺少什么吗?
#!/bin/bash
cat /myspecialdir/foo > /httpd/foo.txt
printf"Pragma-directive: no-cache\
\
";
printf"Cache-directive: no-cache\
\
";
printf"Cache-control: no-cache\
\
";
printf"Pragma: no-cache\
\
";
printf"Expires: 0\
\
";
printf"Location: /foo.txt\
\
";
printf"Content-type: text/html\
\
";
当我通过IE访问时,所有要做的就是在页面中打印标题,如下所示:
实用指令:无缓存
缓存指令:无缓存
缓存控制:无缓存
编译指示:无缓存
有效期:0 短码网-DuanMa.NET
位置:/BACtrace.txt
内容类型:text / html
编辑:
事实证明这是我使用的HTTP服务器(busybox v1.12.1)存在的问题。我无法按照最初建议的那样发送HTTP标头,但是我可以使它与META标签和IE8中的设置结合使用(工具-> Internet选项->浏览历史记录->设置按钮- ->检查"每次我访问网站"。
我使用的META标签是:
echo"<meta http-equiv="expires" content="0" />"
echo"<META HTTP-EQUIV="Pragma-directive" CONTENT="no-cache"/>"
echo"<META HTTP-EQUIV="Cache-directive" CONTENT="no-cache"/>"
echo"<META HTTP-EQUIV="Cache-control" CONTENT="no-cache"/>"
echo"<META HTTP-EQUIV="Pragma" CONTENT="no-cache"/>"
echo"<META HTTP-EQUIV="Refresh" CONTENT="1; URL=/foo.txt"/>"
这不会回答您的问题,请随时投下反对票,但是您可以这样做:
#!/bin/bash
cat /myspecialdir/foo > /httpd/foo.html
printf"Location: /foo.html\
\
";
这将向浏览器发送一个标头,告诉它重定向到
编辑:您应该仅在每个标头的末尾发送1个
#!/bin/bash
cat /myspecialdir/foo > /httpd/foo.txt
printf"Pragma-directive: no-cache\
";
printf"Cache-directive: no-cache\
";
printf"Cache-control: no-cache\
";
printf"Pragma: no-cache\
";
printf"Expires: 0\
";
printf"Location: /foo.txt\
";
printf"\
";
(还请注意,不包括
您需要告诉浏览器(和可能的代理)以适当的HTTP标头禁用文件缓存:
Pragma-directive: no-cache
Cache-directive: no-cache
Cache-control: no-cache
Pragma: no-cache
Expires: 0
当然,您只需将它们添加到脚本中,如下所示:
printf"Pragma-directive: no-cache\
\
";
这些指令中有很多冗余。所有这些可能都不是必需的,但是最好确保所有浏览器和代理都能理解其中的某些内容。
以上就是短码网小编为大家整理的《cgi bin CGI脚本不会执行每次页面访问》相关内容,希望大家喜欢。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!
《cgi bin CGI脚本不会执行每次页面访问》文档下载仅供参考学习,下载后请在24小时内删除。
转载注明出处:https://www.duanma.net/article/cfc2d263265.html