使用CGI和Bottle.py路由URL的问题

时间:2010-04-18 22:57:21

标签: python .htaccess cgi bottle

在CGI环境中使用bottle.py时,我一直很难获得除简单索引之外的任何东西。当我尝试返回/你好时,我收到了404响应。但是,如果我请求/index.py/hello

import bottle
from bottle import route

@route('/')
def index():
    return 'Index'

@route('/hello')
def hello():
    return 'Hello'

if __name__ == '__main__':
    from wsgiref.handlers import CGIHandler
    CGIHandler().run(bottle.default_app())

这是我的.htaccess文件

DirectoryIndex index.py
<ifmodule mod_rewrite.c="">
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.py/$1  [L]
</ifmodule>

我从这里复制了大部分代码,因为我正在使用DH,它似乎相关:http://blog.coderonfire.com/2010/02/running-bottle-python-micro-framework.html

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

问题是<ifmodule>块与您的Apache服务器无关,并且mod_rewrite的指令不起作用。从以下.htaccess开始,如果有需要,请根据当前的apache版本添加块。

DirectoryIndex index.py
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.py/$1  [L]