2011-12-19 68 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