2015-11-05 2 views
3

Я использую Revel для небольшого приложения и добавил SSL. Когда я обновляю конфигурацию, чтобы указать на http.port = 443, запросы на порт 80 отклоняются вместо пересылки. Есть ли способ исправить это на Revel Framework? Спасибо.Revel не пересылает порт 443 при включенном SSL

# The port on which to listen. 
http.port = 443 

# Whether to use SSL or not. 
http.ssl = true 

# Path to an X509 certificate file, if using SSL. 
http.sslcert = /root/go/src/saml/AlphaCerts/cert.crt 

# Path to an X509 certificate key, if using SSL. 
http.sslkey = /root/go/src/saml/star_home_com.key 

ответ

5

Вы можете добавить простой обработчик перенаправления самостоятельно.

Попробуйте положить это в вашем app/init.go файле:

httpRedirectServer := &http.Server{Addr: ":80", Handler: http.HandlerFunc(
    func(w http.ResponseWriter, r *http.Request) { 
     http.Redirect(w, r, fmt.Sprintf("https://%s%s", r.Host, r.RequestURI), 
         http.StatusMovedPermanently) 
    })} 
go httpRedirectServer.ListenAndServe() 

Обратите внимание, что в режиме разработчика Ревеле, вы будете сначала открыть приложение на порт 443, чтобы Revel начать правильно, прежде чем ваш порт 80 код редиректа будет запущен.

+0

Это не изменило ваш код. Примечание для других, чтобы импортировать net/http и fmt после размещения вышеуказанного кода в func init(). Спасибо! – vinniyo