go-chi/chi

Subdomain example in route_headers.go not working

开放

#691 创建于 2021年12月28日

 (13 条评论) (0 个反应) (0 位负责人)Go (555 个派生)batch import
help wanted

仓库指标

星标
 (8,127 个星标)
PR 合并指标
 (平均合并 16小时 36分钟) (30 天内合并 2 个 PR)

描述

I implemented the subdomain example provided in the route_headers.go file. Unfortunately the example provided is not working. The issue is that sub.example.com goes to the main domain page instead of sub domain page. Can anyone please let me know how to fix the issue ? Or if the below code is working for them ?

I was testing on my local Ubuntu PC and following are the contents of /etc/hosts $ cat /etc/hosts 127.0.0.1 localhost 127.0.0.1 example.com 127.0.0.1 sub.example.com

package main

import (
	"fmt"
	"net/http"

	"github.com/go-chi/chi/v5"
	"github.com/go-chi/chi/v5/middleware"
)


func main() {
    r := chi.NewRouter()
    rSubdomain := chi.NewRouter()

    r.Use(middleware.RouteHeaders().
        Route("Host", "example.com", middleware.New(r)).
        Route("Host", "*.example.com", middleware.New(rSubdomain)).
        Handler)

    r.Get("/", h)
    rSubdomain.Get("/", h2)

    http.ListenAndServe(":8080", r)
}

func h(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "Main domain")
}

func h2(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "Sub domiain")
}

贡献者指南