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

WSGI: получить статус 200 OK вместо 404

что не так со следующей настройкой WSGI на основе Apache 2.2, Windows и mod_wsgi 3.3? Проблема в том, что клиент получает статус ответа OK даже при посещении URL-адресов, не связанных с приложением (например, http: // wsgi / любой) вместо кода состояния 404.

Файл сценария приложения WSGI:

# C:\Programmi\Apache Software Foundation\Apache2.2\wsgi\scripts\app.wsgi
def application(environ, start_response):
    status = '200 OK'
    output = 'App WSGI: Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

Виртуальный хост:

<VirtualHost *:80>
    ServerName wsgi

    WSGIScriptAlias / "C:\Programmi\Apache Software Foundation\Apache2.2\wsgi\scripts\app.wsgi"
    <Directory "C:\Programmi\Apache Software Foundation\Apache2.2\wsgi\scripts">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Файл хоста для разрешения имен:

127.0.0.1    wsgi

Большое спасибо.

С помощью:

WSGIScriptAlias / ...

означает отправку всех запросов URL-адресов из '/' в приложение WSGI. Другими словами, каждый запрос к вашему сайту будет обрабатываться приложением WSGI.

Итак, в этом нет ничего плохого, поскольку это то, что вы сказали ему делать.