如何在我的url中隐藏“cgi-bin”、“.py”等?

2024-04-24 10:35:53 发布

您现在位置:Python中文网/ 问答频道 /正文

全新的网页设计,使用python。启动并运行Apache,在cgi-bin目录中测试python脚本。当我显式键入URL:“…/cgi bin/showenv.py”时获得有效结果

但我不想网址看起来像那样。例如,在stackoverflow中,显示在我的地址栏中的url从来没有显示用于运行它们的脚本的混乱细节。它们没有cgi-bin、.py等扩展。我该怎么做?

编辑:谢谢你的回复,每一个都很有帮助,有很多要学的。我现在要进行URL重写;文档中的示例看起来非常接近我实际想要做的事情。但是我致力于python,所以必须看看WSGI。


Tags: py目录脚本url网页键入binapache
3条回答

你必须使用URL重写。

这不是一个毫无意义的问题,它可能相当棘手:)

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

希望你觉得有用

我认为可以通过Apache配置重写URL来实现这一点。您可以看到用于重写here的Apache文档。

编写web应用程序的python方法不是cgi-bin。它是通过使用WSGI

WSGI是web服务器和pythonweb应用程序或框架之间的标准接口。PEP 0333定义了它。

用它代替CGI没有缺点。你会得到很多。漂亮的网址只是一个整洁的事情,你可以很容易做到。

另外,编写WSGI应用程序意味着您可以部署在任何支持WSGI接口的web服务器上。Apache是通过使用mod_wsgi来实现的。

您可以在apache中进行如下配置:

WSGIScriptAlias /myapp /usr/local/www/wsgi-scripts/myapp.py

然后http://myserver.domain/myapp上的所有请求都将转到myapp.py的application可调用,包括http://myserver.domain/myapp/something/here

示例myapp.py

def application(environ, start_response):
    start_response('200 OK', [('Content-type', 'text/plain')])
    return ['Hello World!']

相关问题 更多 >