.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]