使用Python脚本的.htaccess

3 投票
1 回答
9726 浏览
提问于 2025-04-17 16:06

新手问题。 我有一个.htaccess文件,里面有以下内容:

AddHandler python-program .py
PythonHandler index

我尝试写一个叫做script2.py的程序,但当我输入fileserver/script2.py时,它却重定向到fileserver/index.py。有没有办法阻止这种情况发生?

1 个回答

3

配置mod_python的方法有很多种。我觉得你想要的是python.publisher。文档中展示了这样的配置:

AddHandler python-program .py
PythonHandler mod_python.publisher

接下来,针对你的例子,script2.py应该包含类似这样的内容:

def index(req):
    # Your handler here

注意,文档中提到:

这个处理程序允许通过网址访问模块中的函数和变量。

文档中提供了这个例子(我已经修改为使用script2.py):

def say(req, what="NOTHING"):
    return "I am saying %s" % what

一个网址 http://www.mysite.com/script2.py/say 会返回 "我什么都没说"。而一个网址 http://www.mysite.com/hello.py/say?what=hello 会返回 "我说的是你好"。

通常你不想让每个函数和变量都暴露出来。

如果以下情况发生,遍历将停止,并且会返回HTTP_NOTFOUND给客户端:

  • 任何被遍历对象的名称以一个下划线("_")开头。使用下划线来保护那些不应该从网络访问的对象。

撰写回答