将index.cgi重写为index.py

时间:2016-12-09 23:59:40

标签: python apache .htaccess flask

我在Centos上运行了一个Flask应用程序作为CGI。 cgi脚本是index.cgi。

我现在希望index.cgi是index.py。

我已经向那些像这样的人发了一些网址......

https://anysite.com/errorlog/index.cgi/search_body_request/?startdate=2016-01-01&enddate=2016-12-31&srchtxt=Persistence+error

如何将index.cgi重写为index.py,其中包含index.cgi的url仍然有效,但是会被路由到index.py?

我想从我的服务器中删除index.cgi并改为使用index.py。

1 个答案:

答案 0 :(得分:0)

看起来我解决了......

此Flask应用程序位于主htdocs文件夹下名为errorlog的文件夹中。 这就是我所做的,现在似乎有效。

Options +ExecCGI +FollowSymLinks
AddHandler cgi-script .cgi .py .rb

RewriteEngine On
# Lets rewrite all request to https...
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Lets rewrite all request containing index.cgi to /errorlog/index.py
RewriteRule ^index.cgi?(.*)$ /errorlog/index.py$1 [L]

# Lets rewrite all request to the errorlog folder with requested file not found to /errorlog/index.py
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /errorlog/index.py/$1 [QSA,L]

我希望我知道为什么! 我评论它的方式我认为它的工作原理......

有人可以用简单的英语告诉我这是如何运作的!