找不到烧瓶CGI htaccess 404

时间:2020-09-21 22:02:06

标签: python .htaccess flask cgi

我试图在共享服务器上启动并运行最低限度的烧瓶应用程序,因此我尝试遵循基本的烧瓶快速入门说明以及CGI部署说明(python 3.8.2)。那是给我的错误描述为herehere;我无法真正找到解决方案,但我尝试了很多方法,最后在os中添加了myapp.cgi命令,确保运行./myapp.cgi不会因以下代码而出错(我无法访问cgi-bin,因此我改用.htaccess。但是,当我转到主目录时,仍然出现404 not found错误。

myapp.cgi

#!/usr/bin/python3

from wsgiref.handlers import CGIHandler
from hello import app
import os

os.environ['SERVER_NAME'] = ''
os.environ['SERVER_PORT'] = '80'
os.environ['REQUEST_METHOD'] = 'GET'

CGIHandler().run(app)

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f 
# Don't interfere with static files
RewriteRule ^(.*)$ /u/a/b/user/public/html/myapp.cgi/$1 [L]

hello.py

#!/usr/bin/python3

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

我尝试按照某些SO线程的建议删除$1,但这不起作用。我也不能完全确定我对myapp.cgi的解决方案是否正确,因为这似乎是一个普遍的问题,但是我找不到合适的解决方案。

还对共享服务器进行了设置,使得如果没有index.html,它将显示文件结构,但是这两种情况都在发生-它会直接转到404错误页面。

这里可能是什么问题?如何确保可以在共享服务器上运行flask应用程序?

1 个答案:

答案 0 :(得分:1)

您应将此代码添加到.htaccess文件中,以便解析Python的代码:

Options +ExecCGI
AddHandler cgi-script .py

如果您使用的Flask不能重定向,您也可以将索引优先级更改为以下内容:

DirectoryIndex index.py my_script.py test.php etc.extension