我广泛使用脚本,并使用Python从执行的脚本回到启动它的页面,或者有时,完全是其他页面。
假设我正在运行一个脚本,我们将其称为“thisplace.cgi”,无论是什么,都执行以下操作:
sys.stdout.write('Location: otherplace.cgi\n\n')
raise SystemExit
它有效 - 我到达那里,otherplace.cgi生成的页面显示正常,从功能上说,一切都很好。
但是。在浏览器的位置栏中,仍会显示“thisplace.cgi”。不是“otherplace.cgi”,这是用户现在所处的位置。
我做了一些谷歌搜索,从我收集的内容(不多......看起来好奇神秘),我最终发送了这个......
sys.stdout.write('HTTP/1.1 300 Multiple Choices\n')
sys.stdout.write('Location: otherplace.cgi\n\n')
raise SystemExit
...但浏览器只是将其视为无效并给我一个错误页面。 CGI环境是Intertubes上的一些共享主机Debian机器。我在OS X下看到了FireFox中的问题。
我误解了300的用途,或者在哪里使用它,或者是什么?或者我完全困惑? :)
我只是希望浏览器在URL栏中显示正确的内容。看起来似乎不是很多要求。否?
答案 0 :(得分:1)
要将浏览器重定向到其他网址,您需要使用301 Moved Permanently
。这将导致浏览器获取第二页并显示新URL。
E.g。
sys.stdout.write('HTTP/1.1 301 Moved Permanently\n')
sys.stdout.write('Location: otherplace.cgi\n\n')
raise SystemExit