>  기사  >  백엔드 개발  >  Go HTTP 서버의 URL에서 HTML 파일 확장자를 숨기는 방법은 무엇입니까?

Go HTTP 서버의 URL에서 HTML 파일 확장자를 숨기는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-27 16:26:02624검색

How to Hide HTML File Extensions from URLs in a Go HTTP Server?

간단한 HTTP 서버에서 파일 확장자를 숨기는 방법

많은 웹 서버가 URL에 파일 확장자를 표시하는데, 이는 미적 측면에서 바람직하지 않습니다. 또는 사용자 경험상의 이유. 이 가이드는 Go HTTP 서버의 URL에서 .html 확장자를 숨기는 방법을 보여줍니다.

솔루션

http.Dir을 사용하여 http.FileSystem을 구현하면 다음과 같은 여러 가지 이점을 얻을 수 있습니다. http.FileServer 내의 강력한 코드를 활용합니다. 이 기능을 구현하기 위해 사용자 정의 HTMLDir 구조체를 생성할 수 있습니다.

구현

Open의 구현은 원하는 동작에 따라 다릅니다. 아래에는 세 가지 시나리오가 나와 있습니다.

옵션 1: 항상 .html 추가

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

옵션 2: .html로 대체

<code class="go">func (d HTMLDir) Open(name string) (http.File, error) {
    f, err := d.d.Open(name)
    if os.IsNotExist(err) {
        if f, err := d.d.Open(name + ".html"); err == nil {
            return f, nil
        }
    }
    return f, err
}</code>

옵션 3: .html 및 Fallback으로 시작

<code class="go">func (d HTMLDir) Open(name string) (http.File, error) {
    f, err := d.d.Open(name + ".html")
    if os.IsNotExist(err) {
        if f, err := d.d.Open(name); err == nil {
            return f, nil
        }
    }
    return f, err
}</code>

http.StripPrefix와 함께 HTMLDir을 사용하면 다음에서 파일을 제공할 때 .html 확장자를 효과적으로 숨길 수 있습니다. 지정된 디렉토리. 이 기술은 의도한 콘텐츠에 대한 액세스를 허용하면서 보다 원활하고 미학적으로 만족스러운 사용자 경험을 제공합니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.