Go HTTP 서버의 URL에서 .html 확장자를 제거하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-28 08:34:29
원래의
734명이 탐색했습니다.

How to Remove the .html Extension from URLs in a Go HTTP Server?

HTTP 서버의 파일에서 .html 확장자 제거

많은 HTTP 서버가 URL 끝에 ".html" 확장자를 자동으로 추가합니다. , 어떤 경우에는 바람직하지 않을 수 있습니다. Go HTTP 서버에서 이 동작을 수정하려면 http.Dir을 사용하여 사용자 정의 http.FileSystem을 구현할 수 있습니다. 방법은 다음과 같습니다.

  1. 사용자 정의 파일 시스템 만들기:
<code class="go">type HTMLDir struct {
    d http.Dir
}</code>
로그인 후 복사
  1. Open 메서드 구현:

Open 방법에 따라 파일을 여는 방법이 결정됩니다. 요구 사항에 따라 여러 가지 옵션이 있습니다.

항상 ".html" 확장자를 추가합니다:

<code class="go">func (d HTMLDir) Open(name string) (http.File, error) {
    return d.d.Open(name + ".html")
}</code>
로그인 후 복사

".html" 확장자로 대체:

<code class="go">func (d HTMLDir) Open(name string) (http.File, error) {
    // Try name as supplied
    f, err := d.d.Open(name)
    if os.IsNotExist(err) {
        // Not found, try with .html
        if f, err := d.d.Open(name + ".html"); err == nil {
            return f, nil
        }
    }
    return f, err
}</code>
로그인 후 복사

".html" 확장자로 시작하고 대체:

<code class="go">func (d HTMLDir) Open(name string) (http.File, error) {
    // Try name with added extension
    f, err := d.d.Open(name + ".html")
    if os.IsNotExist(err) {
        // Not found, try again with name as supplied.
        if f, err := d.d.Open(name); err == nil {
            return f, nil
        }
    }
    return f, err
}</code>
로그인 후 복사
  1. 사용자 정의 파일 시스템 사용:
<code class="go">fs := http.FileServer(HTMLDir{http.Dir("public/")})
http.Handle("/", http.StripPrefix("/", fs))</code>
로그인 후 복사

http.FileSystem을 구현하고 Open 메서드를 사용자 정의하면 ".html" 확장자 관련 동작을 포함하여 HTTP 서버에서 파일을 제공하는 방법을 제어할 수 있습니다.

위 내용은 Go HTTP 서버의 URL에서 .html 확장자를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!