2011-12-19 67 views
0

我有一个形式的HTML文件:如何隐藏.cgi之后的所有内容?在地址栏

<form method="get" enctype="multipart/form-data" action="bin/a_python_script.cgi"> 

(我有'使用方法=“获取”,因为当我使用method =“POST”我得到奇怪的“页面过期在Internet Explorer 8)

结果页面返回‘按钮“与问题,’这显示在地址栏:

http://www.mydomain.com/bin/a_python_script.cgi?var1=a+variable&var2=another+variable&Submit=submit+this 

我在地址栏首选的输出将是:

http://www.mydomain.com/bin/a_python_script.html 

如何隐藏“.cgi?”之后的所有内容?

而且我可以改变“的CGI”到“ html的”?

回答

4

不幸的是,有没有比“得到”改变形式方法为“POST”其他选项。

GET将所有表单字段编码到URL中。如果不移除数据,则无法隐藏任何内容。

快速谷歌搜索“防止网页过期消息”变成了相当多的结果(示例大多是PHP,但这个概念可以转移到任何语言):

Google - prevent page expired message

+0

谢谢贾斯汀。我用google搜索'阻止页面过期的消息'并不幸运。你有没有发现我可以从我的python cgi脚本中使用的结果? – 2011-12-19 16:41:43

0

同意Justin Niessner - 然而,在命中之后,您可以重定向到另一个页面,以便参数不会保留在URL中。或者,你可以通过AJAX提交表单的背景下,因此用户不会注意到PARAMS发送

+0

谢谢都铎王朝。我如何重定向到另一个页面? – 2011-12-19 16:47:23

2

你的形式方法必须是“后”,而不是“得到”。

在你的CGI脚本,你应该能够中检索发布数据。

为扩展名的变化,用的.htaccess它应该工作。

+0

谢谢Pier-Alexandre。我尝试了几个.htaccess'巫毒',但没有奏效。如果扩展名更改必须可以使用.htaccess,那么为什么不删除网址的一部分? – 2011-12-19 16:43:42

+0

htaccess的: RewriteEngine叙述在 重写规则^ \ a_python_script.html $ /bin/a_python_script.cgi [L] – 2011-12-19 17:01:22

+0

我没有尝试我给你的代码,但产生的htaccess重写了很多的工具。看看:http://www.generateit.net/mod-rewrite/ – 2011-12-19 17:02:42

1

离开表单作为POST,然后使用模式允许用户返回或刷新而不发出警告。

+0

谢谢乔希。我找到了PRG维基条目,并且google也发现了一些结果,但没有任何可以用于我的python cgi脚本。这是我的代码的一部分:'尝试: print“Content-type:text/html \ n \ n” my_html()'我应该使用什么? – 2011-12-19 16:45:06