Проблемы с URL-адресами маршрутизации с помощью CGI и Botton.py

StackOverflow https://stackoverflow.com/questions/2664350

  •  27-09-2019
  •  | 
  •  

Вопрос

У меня было трудно получить что-либо большее, чем простой индекс /, чтобы правильно вернуться с помощью Botton.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.

Спасибо за помощь.

Это было полезно?

Решение

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

DirectoryIndex index.py
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.py/$1  [L]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top