Python URL重写问题

Python URL重写问题,python,apache,Python,Apache,我有一个名为index.CGI的CGI脚本(pwyky),放在目录wiki/中,并将Apache设置为在访问localhost/wiki时调用localhost/wiki/index.CGI 当我尝试使用此应用程序时,会出现错误--它会创建一个包含如下链接的页面“http://localhost/wiki/@“编辑/索引”,但当我单击该链接时,Apace正试图将“wiki/@edit/index”作为一个文件提供。我怀疑我需要让Apache将/@edit/index传递到index.cgi 特别

我有一个名为index.CGI的CGI脚本(pwyky),放在目录wiki/中,并将Apache设置为在访问localhost/wiki时调用localhost/wiki/index.CGI

当我尝试使用此应用程序时,会出现错误--它会创建一个包含如下链接的页面“http://localhost/wiki/@“编辑/索引”,但当我单击该链接时,Apace正试图将“wiki/@edit/index”作为一个文件提供。我怀疑我需要让Apache将/@edit/index传递到index.cgi

特别是,通过index.cgi,它在REQUEST_URI环境变量中查找类似“@edit”的字符串


你知道如何解决这个问题吗?

你需要显示你的apache配置来确定,但是apache似乎没有实际使用mod_cgi来服务index.cgi脚本。在您的配置中应该有类似“LoadModule mod_cgi”的内容。它应该是未注释的(即,它不应该在行的开头有“#”)


如果您想对此进行测试,请编写一个“Hello World”cgi脚本,并将其(暂时)放在index.cgi的位置,然后查看是否可以运行该脚本。让我们知道结果

我发现了问题,原来这是通过重写引擎完成的。Pwyky将.htaccess文件放入包含重写引擎所有设置的目录中,但由于在MacOS上AllowOverride默认为“None”,因此它们被忽略。解决方案是将所有“AllowOverride”指令更改为“all”

CGI脚本运行,但我得到了“page not found”错误,我认为这是因为脚本希望Apache将URL类似的“”解释为对“wiki/index.CGI”脚本的调用。您如何知道CGI运行?如果您得到一个“page not found”错误,这可能是由apache生成的,而不是由cgi生成的,在这种情况下,cgi永远不会被调用(或者这样,或者我需要更多信息来破译)。另一种可能是,您需要一个更健壮的表达式来告诉apache将“/wiki/*”发送到index.cgi(但这通常不是必需的)