从HTML文件中调用cgi脚本(在localhost上)

时间:2014-12-22 10:26:10

标签: python apache cgi

我开始使用CGI编程,并且对从索引文件中调用CGI脚本的安全性方面提出了疑问。这是简单的CGI脚本。

#!/usr/bin/python

print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'

以下是索引文件的样子:

<a href="http://localhost/cgi-bin/hello.py">HELLO</a>

请注意,我使用完整的网址http://localhost/cgi-bin/hello.py

调用了cgi脚本

我对CGI的本地Apache Web服务器配置是这样的:

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

此脚本目前按预期工作,这样当单击“Hello”链接时,将显示CGI脚本的输出。我有两个与此相关的问题:

  • 这种调用CGI脚本的方法是否正确,因为这几乎是一个具有各种CGI脚本的站点,这些脚本运行不同的任务,并且很可能通过按钮或链接调用?

  • 我不知道我是否以正确的方式提出这个问题,但有可能不显示目标网址吗?目前,localhost/whoisit/显示超链接,点击名为“Hello”的链接会在地址栏中显示以下网址 - localhost/cgi-bin/hello.py

提前谢谢。

1 个答案:

答案 0 :(得分:0)

a)是的,这是调用CGI脚本的正确方法。

b)要隐藏网址中的详细信息,您需要了解URL rewriting。谷歌它,你会发现许多教程和网站,将教你这个。如果您提供原始URL,也有网站会生成URL重写代码。您可以根据服务器将该代码复制粘贴到相应的文件中(例如,.htaccess用于apache服务器。)