Flask CGI htaccess 404 not found



我正试图在共享服务器上启动并运行一个最小的flask应用程序,所以我尝试按照基本的flask快速启动指令和CGI部署指令(python 3.8.2(进行操作。这给了我这里和这里描述的错误;我真的无法找到解决方案,但我尝试了很多方法,最终在myapp.cgi中添加了os命令,确保运行./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]

你好.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错误页面。

这里可能有什么问题?我该如何确保我可以在共享服务器上运行烧瓶应用程序?

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

Options +ExecCGI
AddHandler cgi-script .py

此外,如果你使用的烧瓶没有重定向,你可以将索引优先级更改为这样的内容:

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

最新更新