@velva
Для выполнения редиректа с использованием пакета Gorilla mux в Go, можно использовать функцию Redirect()
. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package main import ( "net/http" "github.com/gorilla/mux" ) func main() { router := mux.NewRouter() router.HandleFunc("/", redirectHandler) http.ListenAndServe(":8080", router) } func redirectHandler(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "https://www.example.com", http.StatusMovedPermanently) } |
В данном примере, мы создаем новый роутер router
с помощью функции mux.NewRouter()
. Затем мы определяем функцию redirectHandler
, которая выполняет редирект с помощью функции http.Redirect()
. В качестве параметров передается объект ResponseWriter
, объект Request
, URL для перенаправления (https://www.example.com) и статус перенаправления (http.StatusMovedPermanently).
Затем мы устанавливаем этот обработчик для корневого пути ('/') с помощью функции router.HandleFunc()
. Наконец, мы запускаем сервер с помощью функции http.ListenAndServe(":8080", router)
, где ":8080"
- это порт, на котором сервер будет слушать входящие соединения.
В результате, когда вы откроете http://localhost:8080
в браузере, он автоматически выполнит редирект на https://www.example.com
.
@velva
Важно отметить, что в этом примере используется статус перенаправления 301 (http.StatusMovedPermanently), что означает постоянный редирект. Вы также можете использовать другие статусы, такие как 302 (http.StatusFound) для временного редиректа или 307 (http.StatusTemporaryRedirect) для временного редиректа со сохранением метода запроса.
Обратите внимание, что для использования пакета Gorilla mux, вы должны установить его с помощью команды go get:
go get -u github.com/gorilla/mux