سؤال

لقد واجهت صعوبة في الحصول على أي شيء أكثر من مجرد فهرس / للعودة بشكل صحيح باستخدام 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

شكرا على المساعدة.

هل كانت مفيدة؟

المحلول

المشكلة هي أن <ifmodule> Block غير ذي صلة بخادم 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