WSGI:获取状态 200 OK 而不是 404

WSGI:获取状态 200 OK 而不是 404

以下基于 Apache 2.2、Windows 和 mod_wsgi 3.3 的 WSGI 设置有什么问题?问题是,即使访问没有关联应用程序的 URL,客户端也会获得 OK 响应状态(例如http://wsgi/any),而不是 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

非常感谢。

答案1

使用:

WSGIScriptAlias / ...

表示将“/”下的所有 URL 请求都发送给 WSGI 应用程序。换句话说,每个发送到您网站的请求都将由 WSGI 应用程序处理。

所以,没有什么问题,因为这是你告诉它要做的。

相关内容