Skip to content

Subdomain example in route_headers.go not working #691

@jaytxrx

Description

@jaytxrx

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")
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions