Ho riscontrato difficoltà a ottenere qualcosa di più di un semplice indice/a restituire correttamente utilizzando bottle.py in un ambiente CGI. Quando provo a tornare/ciao ottengo una risposta 404. Tuttavia, se chiedo /index.py/helloProblemi con gli URL di instradamento tramite CGI e Bottle.py
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())
Ed ecco il mio file .htaccess
DirectoryIndex index.py
<ifmodule mod_rewrite.c="">
RewriteEngine on
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.py/$1 [L]
</ifmodule>
ho copiato gran parte del codice da qui come sto usando DH e sembrava rilevante : http://blog.coderonfire.com/2010/02/running-bottle-python-micro-framework.html
Grazie per l'aiuto.
Grazie, questo funziona. Ho dovuto rimuovere il precedente/su /index.py/$1 ma poi funziona perfettamente. – Risingson
@ enrico, non sono sicuro che mi piaccia la tua modifica. Farei meglio a rimuovere la barra iniziale anziché rimuovere il RewriteBase. – newtover
L'impostazione di RewriteBase sembra eccessiva quando si tratta solo di una barra, ma certamente rende le cose più semplici se questo dovesse mai cambiare. Tuttavia, la vera ragione per cui non ho rimosso la barra principale è che una modifica deve essere di almeno 6 caratteri, a causa del filtro "modifica significativa". Puoi rimetterlo e rimuovere la barra se è la tua preferenza. – Enrico