Redirect tutti gli URL http e https non-www a https://www.example.com tramite htaccess

Per motivi troppo lunghi e complessi per entrare (coinvolge diversi strati di burocrazia aziendale che provoca qualcuno che non acquista un certificato SSL jolly che ho richiesto) devo impostare un dominio per redirect tutte le richieste a https: // www .example.com – protocollo protetto con il sottodominio www .

EDIT: Il certificato SSL è valido solo per il dominio www.xyz.com.

  • Come posso impostare lighttpd per l'authentication del certificato client x.509
  • HSTS esclude un sottodominio specifico con "includeSubdomains"
  • Proxy inverso HTTPS per il servizio Web solo HTTP
  • Consente di crittografare con un proxy inverso di nginx
  • Percorso AuthUserFile relativo alla radice host virtuale?
  • Dominio primario host da una sottocartella
  • Quindi: http://example.com , http://www.example.com e https://example.com dovrebbero essere tutti reindirizzati a https://www.example.com .

    Il mio .htaccess-fu è debole al meglio e non riesco a far funzionare questo. Nota: l'hosting è sul tempio dei media se questo fa la differenza.

    Finora, il mio file .htaccess sembra così:

     RewriteEngine On RewriteCond %{HTTPS} !^on$ RewriteRule (.*) https://www.example.com/$1 [R,L] RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

    Entrambi http://example.com e http://www.example.com stanno reindirizzando a https://www.example.com , quindi yay. Tuttavia, https://example.com non viene reindirizzato a https://www.example.com e quindi sta lanciando una pagina di avviso di protezione:

    Probabilmente questo non è il sito che stai cercando!
    Hai tentato di raggiungere example.com , ma invece hai effettivamente raggiunto un server che si identifica come www.example.com . Ciò può essere causato da una mancata configuration sul server o da qualcosa di più grave. Un utente malintenzionato sulla tua networking potrebbe cercare di farti visitare una versione falsa (e potenzialmente dannosa) di example.com .
    Non dovresti procedere, soprattutto se non hai mai visto questo avviso prima per questo sito.

    Qualsiasi aiuto per farmi passare da questa ultima gola sarebbe molto apprezzato!

  • Come nidificare correttamente un router wireless dietro un router cablato?
  • traceroute non funziona, l'output è * * * ma la networking è soddisfacente
  • Miglior modo per migliorare la resilienza?
  • Windows XP utilizzato come server
  • Prestazioni del server SQL a lunga distanza
  • 8 Nomi di dispositivi caratteri
  • 5 Solutions collect form web for “Redirect tutti gli URL http e https non-www a https://www.example.com tramite htaccess”

    È necessario un certificato valido sia per example.com che www.example.com se si desidera riscrivere tali richieste a www.example.com (o due certeggi separati che lo eseguono). Non c'è alcun modo per questo.

    @ Simbus82 ha ragione di invertire le regole. Ecco un approccio che è leggermente più universale.

     RewriteEngine On # ensure www. RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # ensure https RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

    Invertire le regole 😉

    sto usando questo e ho avuto il tuo problema

     RewriteEngine On RewriteCond %{HTTP_HOST} ^site.it [NC] RewriteRule (.*) http://www.site.it/$1 [L,R=301] RewriteCond %{SERVER_PORT} ^443$ [OR] RewriteCond %{HTTPS} =on RewriteRule ^(.*)$ http://www.site.it/$1 [R=301,L] 

    Prima riscrivere a www e quindi controllare https.

    Questa è una domanda molto complessa. La maggior parte dei tutorial su Internet ti dirà, come Simbus82, di invertire solo alcune righe di codice all'interno di htacess. Ciò non funziona sempre (specialmente se si dispone di un equipaggiamento SSL offloading di fronte a Apache)

    Hai alcune opzioni per risolvere il problema:

    • Utilizza il servizio http://redirect.name , servizio. Rischio di questa soluzione: a seconda di un terzo. Funziona SOLO per le richieste HTTP reindirizzate a HTTPS, quindi non serve alcuna guida per redirect https://example.com a https://www.example.com
    • Inserisci un record "URL" nel tuo DNS, se il tuo registrar lo support
    • Come ha detto MDMarra, acquista un certificato HTTPS di carattere jolly (o multi-dominio).

    Non posso spiegare perché, ma sembra che il protocollo SSL controlla il problema del certificato di dominio / sottodominio, prima di gestire la richiesta a Apache.

    La mia conoscenza .htaccess è anche debole, ma che dire di una soluzione alternativa?

    Puoi redirect tutti http://example.com a http://example.com/redirect.html e avere un button where possono fare clic? Spiega alla pagina quello che stai facendo.

    Potreste anche rendere che un reindirizzamento temporaneo in JavaScript o qualcosa del genere?

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.