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 ответ
Если для RewriteBase установлено значение '/' в.htaccess, вероятно, вам нужно использовать:
RewriteRule ^(.*)$ /index.wsgi$1 [QSA,L,PT]