مشاكل في توجيه عناوين URL باستخدام CGI و Bottle.py
سؤال
لقد واجهت صعوبة في الحصول على أي شيء أكثر من مجرد فهرس / للعودة بشكل صحيح باستخدام 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]
لا تنتمي إلى StackOverflow