如何从 HTTP 服务器中的文件中删除 .html 扩展名
开发 Web 服务器时,通常需要从文件名中删除 .html 扩展名以提供更干净、更用户友好的 URL 体验。
在 Go HTTP 服务器中,这可以通过实现 http.FileSystem 接口并将其注册为自定义处理程序来实现。以下代码演示了如何执行此操作:
<code class="go">package main import ( "net/http" "os" ) type HTMLDir struct { d http.Dir } func main() { fs := http.FileServer(HTMLDir{http.Dir("public/")}) http.Handle("/", http.StripPrefix("/", fs)) http.ListenAndServe(":8000", nil) } func (d HTMLDir) Open(name string) (http.File, error) { f, err := d.d.Open(name + ".html") if os.IsNotExist(err) { // Not found, try with .html if f, err := d.d.Open(name); err == nil { return f, nil } } return f, err }</code>
此自定义文件系统 HTMLDir 会重写 Open 方法来搜索带或不带 .html 扩展名的文件。当发出文件请求时,服务器将首先尝试打开扩展名为 .html 的文件。如果找不到,它将尝试打开不带扩展名的文件。
通过实现自定义文件系统并将其注册为处理程序,您可以有效地从文件名中删除 .html 扩展名,同时仍然提供访问权限到想要的内容。
以上是如何在 Go HTTP 服务器中去除文件名中的 .html 扩展名?的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了使用GO的“字符串”软件包进行字符串操作,详细介绍了共同的功能和最佳实践,以提高效率并有效地处理Unicode。

本文详细介绍了GO的“时间”包用于处理日期,时间和时区,包括获得当前时间,创建特定时间,解析字符串以及测量经过的时间。

文章讨论了使用GO的“同步/原子”软件包进行并发编程中的原子操作,详细说明了其益处,例如防止比赛条件和提高性能。

本文讨论了GO中的类型转换,包括语法,安全转换实践,常见的陷阱和学习资源。它强调明确的类型转换和错误处理。[159个字符]

本文解释了在GO中使用“选择”语句来处理多个频道操作的使用,其与“开关”语句的差异以及常见用例,例如处理多个渠道,实现超时,非B


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具