python - 使用 SimpleHTTPServer 禁用索引文件

标签 python http server directoryindex

默认情况下,SimpleHTTPServer 使用 index.html 作为索引文件,我想禁用它们并始终显示目录索引。

我该怎么做? document here什么也没说

最佳答案

简单方法:

将索引文件重命名为其他名称

更复杂的方法:

你必须用类似这样的东西覆盖 SimpleHTTPRequestHandlertranslate_path 方法:

import BaseHTTPServer
import SimpleHTTPServer
server_address = ("", 8888)
PUBLIC_RESOURCE_PREFIX = '/public'
PUBLIC_DIRECTORY = '/path/to/protected/public'

class MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    def translate_path(self, path):
        if self.path.startswith(PUBLIC_RESOURCE_PREFIX):
            if self.path == PUBLIC_RESOURCE_PREFIX or self.path == PUBLIC_RESOURCE_PREFIX + '/':
                return PUBLIC_DIRECTORY + path[len(PUBLIC_RESOURCE_PREFIX):]
        else:
            return SimpleHTTPServer.SimpleHTTPRequestHandler.translate_path(self, path)

httpd = BaseHTTPServer.HTTPServer(server_address, MyRequestHandler)
httpd.serve_forever()

关于python - 使用 SimpleHTTPServer 禁用索引文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40739894/

相关文章:

python - 正则表达式删除最后一个单词,如果它包含一个字符

java - Java 应用程序服务器如何决定在 HTTP Content-type header 中发送什么字符集?

image - "docker pull"命令协议(protocol)

Java 服务器 - 如何从 InputStreamReader 获取输入并将其转换为字符串?

javascript - NodeJS path.resolve 无法按预期工作

python - 使用 Cython 生成 C 代码时出现“未知类型名称”错误

python - Tensorflow:在cpu上的多个线程中加载数据

python - Pandas 用列表设置单元格的值范围

ruby-on-rails - 处理 HTTP 响应和解析 JSON 数据时遇到问题

google-maps - 我应该将新的还是旧的 Context 对象发送到我自己的 gRPC 服务器内的第 3 方 gRPC API?