mod_wsgi + cherrypy = 404-未找到路径“/index.wsgi/”

mod_wsgi + cherrypy = 404-未找到路径“/index.wsgi/”

.htaccess 文件:

AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteBase /
RewriteRule ^(media/.*)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,L,PT]

index.wsgi:

import atexit
import threading
import cherrypy

cherrypy.config.update({'environment': 'embedded'})

if cherrypy.engine.state == 0:
        cherrypy.engine.start(blocking=False)
        atexit.register(cherrypy.engine.stop)

class Root:
        def index(self):
            return "..."
            index.exposed = True

    def default(self):
            return "default"
                index.exposed = True

application = cherrypy.tree.mount(Root(), "/")
  • 这是一个共享主机,我无法访问 apache
  • 我不被允许使用 WSGIScriptAlias

404 错误来自 cherrypy(由底部的 cherrypy 提供支持),因此我得出结论,apache 正在正确调用 .wsgi 文件,它似乎也传递了 /index.wsgi/,而 cherrypy 不知道如何处理它。

谁能帮我这个?

我之前从未部署过 cherrypy 应用程序,这是最佳/唯一/推荐的方法吗?

提前致谢。

答案1

如果在 .htaccess 中将 RewriteBase 设置为 '/',则可能需要使用:

RewriteRule ^(.*)$ /index.wsgi$1 [QSA,L,PT]

相关内容