Sådan omdirigeres dit domæne med nøgne / bare knogler nemt til dit fulde domænenavn

Jeg har for nylig uploadet et websted på et domæne via Firebase-hosting. Ved hjælp af domæneregistratoren (NameCheap) har jeg også anvendt en 301-omdirigeringsregel (via NameCheap. Det kaldes "URL-omdirigeringspost" under Host Records), så det går til "@" (for eksempel example.com) omdirigerer til www.example.com.

Dog bemærkede jeg, at hvis jeg angiver enten http eller https-ordningen sådan - http[s]://example.com Jeg kommer til https://example.com (selv når du indtaster http), og få en ERR_CONNECTION_REFUSED fejl.

Hvad er årsagen til det, og hvordan kan det løses? Gør jeg nogle ting forkert?

Jeg vil nævne, at 301-reglen først ikke fungerede, da jeg specificerede at gå til https://www.example.com, og først efter udskiftning af https med regelmæssig http fungerede det (selvom når jeg besøger webstedet, ser jeg stadig i URL'en, at det faktisk bruger https).

Folk har foreslået, at HSTS (som automatisk tilføjes af Firebase) skal være årsagen til problemet, men andre websteder (såsom Facebook) har HSTS endnu ikke støder på det samme problem.

  • 1 Når du siger, at du har implementeret en omdirigering, gjorde du det via NameCheap eller gennem hostingfirmaet, der er vært for dit hovedwebsted? Jeg antager, at dit hostingfirma er noget andet end NameCheap. Hvilket firma er det?
  • @StephenOstermiller du har ret. Jeg brugte Firebase til hosting, og omdirigering sker via NameCheap. Jeg opdaterede mit spørgsmål for at indikere det.
  • Hvad med HSTS? Forsøger du at bruge det? (Svaret er "nej", hvis du ikke ved hvad det er, eller medmindre du har en .dev domæne websted.)
  • @StephenOstermiller Nej. Jeg aktiverede det ikke. Men måske er det tændt som standard med Firebase?
  • 1 Ja, det ser ud til, at Firebase automatisk tilføjer HSTS til alle hostede websteder: groups.google.com/forum/#!topic/firebase-talk/S6XDEV6TVhk

Namecheap tilbyder ikke HTTPS til omdirigeringer. Det ville være bedre at implementere omdirigering hos dit hostingfirma, så de kan udføre HTTPS til omdirigering. Denne side har instruktioner halvvejs ned for at tilføje både www og no-www til Firebase og indstille den ene til at omdirigere til den anden https://www.allwebtuts.com/add-a-custom-domain-on-google-firebase- vært /

Omdirigerer http://example.com til begge http://www.example.com eller https://www.example.com skal fungere fint. Der er to grunde til, at du måske støder på problemer:

  1. Browser caching: Browsere cache 301 omdirigeringer aggressivt. Hvis du ændrer en 301-omdirigering, skal du rydde din browsercache, før du tester igen. Alternativt test med et online- eller kommandolinjeværktøj. Jeg kan godt lide at bruge kommandolinjen: curl --head http://example.com/
  2. HSTS: HSTS er et direktiv om at omgå HTTP for sikkerhed. Det er en måde at sige "mit websted vil aldrig bruge den usikre HTTP-protokol". Når HSTS er aktiveret, opgraderer browsere automatisk alle HTTP-URL'er til HTTPS efter at have besøgt dit websted for første gang. Så hvis HSTS er aktiveret, http://example.com bliver automatisk opgraderet til https://example.com uden at ramme din server. Når du bruger omdirigeringer af Namecheaps uden HTTPS, får brugerne bare forbindelsen nægtet fejl.
  • Den ressource, du pegede på, viser kun afkrydsningsfeltet Firebase til at omdirigere fra underdomæne til det nøgne domæne (www.eksempel.dk ›eksempel.dk). Kunne du uddybe vejen til det modsatte (www.example.com ›example.com)? Jeg ser, at de i deres eksempel ender med A-poster for både det nøgne domæne og underdomænet, mens den rigtige løsning ville være at omdirigere det nøgne domæne til "www" -versionen, er det ikke?
  • Jeg antog, at du kunne tilføje det bare domæne og vælge at omdirigere det. Jeg har aldrig brugt Firebase selv, så jeg har ikke testet det.
  • Det ser ud til, at problemet faktisk var cachelagring i browseren. Åbnet i en anden browser og inkognitotilstand, og det fungerede.

Det korte svar er, at din webhostingudbyder ikke kører en HTTPS-server på den IP-adresse, der er knyttet til deres webserver. (Som angivet af ERR_CONNECTION_REFUSED). Jeg indstiller, at hvis dette er en standard Namecheap-opsætning, at dette er noget, de bliver nødt til at rette op på, men de er muligvis ikke i stand til at gøre det på grund af den betydelige ekstra kompleksitet https tilføjer til at være vært for en omdirigeringstjeneste.

Det lyder også som om, det kan være et (browser) caching-problem, der foregår - hvilket kan forklare den eratiske adfærd, du taler om i dit sidste afsnit. Prøv at skylle din browsercache eller bruge en alternativ browser.

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?