代码之家  ›  专栏  ›  技术社区  ›  Steve Paulo

网页.pyURL映射不接受“/”

  •  1
  • Steve Paulo  · 技术社区  · 16 年前

    所以每网页.py我看过的教程包括以下几行:

    urls = (
        '/', 'index',
    )
    

    然后,稍后,使用GET函数定义index类,以此类推。我的问题是,这不管用。使用上面的代码,我得到一个404错误。使用以下映射工作:

    urls = (
        '/.*', 'index',
    )
    

    但至少在一开始,它会捕获每一个可能的URL,我只希望对域根目录的访问由“index”处理。Halp?

    一些基本信息:

    Python 2.6版,网页.py0.3、Apache 2.2和mod\u wsgi

    不知道还有什么有用的,所以如果有什么重要的东西我可以添加(也许是来自Apache的VirtualHost?)请问一下,我在这里加上。

    编辑:包括我的Apache VirtualHost配置:

    <VirtualHost *:80>
        ServerName dd.sp4.us
        DocumentRoot /home/steve/www/nov2010/public/
        ErrorLog /home/steve/www/nov2010/log/error.log
        CustomLog /home/steve/www/nov2010/log/access.log combined
    
        WSGIScriptAlias / /home/steve/www/nov2010/app
        Alias /static /home/steve/www/nov2010/public
    
        <Directory /home/steve/www/nov2010/app>
            SetHandler wsgi-script
            Options ExecCGI
        </Directory>
    
        AddType text/html .py
    
        <Location />
            RewriteEngine on
            RewriteBase /
            RewriteCond %{REQUEST_URI} !^/static
            RewriteCond %{REQUEST_URI} !^(/.*)+code.py/
            RewriteRule ^(.*)$ code.py/$1 [PT]
        </Location>
    </VirtualHost>
    
    1 回复  |  直到 16 年前
        1
  •  5
  •   Graham Dumpleton    16 年前

    背景阅读:

    http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines

    假设您只有一个WSGI应用程序要安装在站点的根目录下,并且只有静态文件或其他资源位于/static下,则不是:

    WSGIScriptAlias / /home/steve/www/nov2010/app
    Alias /static /home/steve/www/nov2010/public
    
    <Directory /home/steve/www/nov2010/app>
        SetHandler wsgi-script
        Options ExecCGI
    </Directory>
    
    AddType text/html .py
    
    <Location />
        RewriteEngine on
        RewriteBase /
        RewriteCond %{REQUEST_URI} !^/static
        RewriteCond %{REQUEST_URI} !^(/.*)+code.py/
        RewriteRule ^(.*)$ code.py/$1 [PT]
    </Location>
    

    用途:

    Alias /static /home/steve/www/nov2010/public
    
    WSGIScriptAlias / /home/steve/www/nov2010/app/code.py
    
    <Directory /home/steve/www/nov2010/app>
    Order allow,deny
    Allow from all
    </Directory>
    

    配置mod\u wsgi的多种方法不应该一起使用。

    如果你的要求是其他的,你就必须更清楚你想要发生什么。