Problemas com URLs de roteamento usando CGI e Bottle.py
Pergunta
Eu tenho dificuldade em obter algo mais do que um simples índice / retornar corretamente usando o Bottle.py em um ambiente CGI. Quando tento voltar /olá, recebo uma resposta 404. No entanto, se eu solicitar /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())
E aqui está o meu arquivo .htaccess
DirectoryIndex index.py
<ifmodule mod_rewrite.c="">
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.py/$1 [L]
</ifmodule>
Copiei muito do código daqui, pois estou usando o DH e parecia relevante: http://blog.coderonfire.com/2010/02/running-bottle-python-micro-framework.html
Obrigado por ajudar.
Solução
O problema é que o <ifmodule>
O bloco não é relevante para o seu servidor Apache e as diretivas para Mod_rewrite não estão funcionando. Comece com o seguinte .htaccess
E então, se você precisar, adicione o bloco de acordo com sua versão atual do Apache.
DirectoryIndex index.py
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.py/$1 [L]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow