Назад | Перейти на главную страницу

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(), "/")

Ошибка 404 исходит от cherrypy (работает от cherrypy на боттоне), поэтому я заключаю, что apache правильно вызывает файл .wsgi, кажется, что он также передает /index.wsgi/, и cherrypy не знает, что с ним делать.

Кто-нибудь может мне с этим помочь?

Я никогда раньше не развертывал вишневое приложение, это лучший / единственный / рекомендуемый способ сделать это?

Заранее спасибо.

Если установить RewriteBase в '/' в .htaccess, вероятно, вам нужно будет использовать:

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