Domanda

Sto avendo difficoltà a ottenere qualcosa di più di un indice semplice / per tornare correttamente utilizzando bottle.py in un ambiente CGI. Quando provo a tornare / ciao ottengo una risposta 404. Tuttavia, se chiedo /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 qui è il mio file .htaccess

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

I copiato gran parte del codice da qui come sto usando DH e sembrava rilevanti: http://blog.coderonfire.com/2010/02/running-bottle-python-micro-framework.html

Grazie per l'aiuto.

È stato utile?

Soluzione

Il problema è che il blocco <ifmodule> non è rilevante per il vostro server Apache e le direttive per mod_rewrite non funzionano. Inizia con il seguente .htaccess e quindi se avete un bisogno, aggiungere il blocco in base alla versione di Apache corrente.

DirectoryIndex index.py
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.py/$1  [L]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top