找不到烧瓶CGI htaccess 404

问题描述

我试图在共享服务器上启动并运行最低限度的烧瓶应用程序,因此我尝试遵循基本的烧瓶快速入门说明以及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应用程序?

解决方法

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

Options +ExecCGI
AddHandler cgi-script .py

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...