Проблемы с маршрутизацией URL с использованием CGI и Bottle.py - PullRequest
6 голосов
/ 19 апреля 2010

Мне было трудно получить что-то большее, чем простой индекс / для правильного возврата с использованием bottle.py в среде CGI. Когда я пытаюсь вернуться / привет, я получаю ответ 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 Ответ

4 голосов
/ 19 апреля 2010

Проблема в том, что блок <ifmodule> не имеет отношения к вашему серверу Apache и директивы mod_rewrite не работают.Начните со следующего .htaccess, а затем, если вам нужно, добавьте блок в соответствии с текущей версией apache.

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