Reindirizzamento htaccess https da www a non-www

11 feb 2017, 03:52:47
Visualizzazioni: 24.9K
Voti: 4

Ho aggiunto il reindirizzamento .htaccess https da www a non-www con:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www\.
    RewriteCond %{HTTPS}s ^on(s)|off
    RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
    RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]
</IfModule>`

Quando visito il mio dominio, i seguenti reindirizzamenti avvengono senza alcun problema:

http://www.example.com     → http://example.com
http://www.example.com/abc → http://example.com/abc

Ma quando visito il mio dominio come https://www.example.com o https://www.example.com/abs, il mio dominio non reindirizza e mostra il codice di errore: SSL_ERROR_INTERNAL_ERROR_ALERT (in Firefox) o ERR_SSL_PROTOCOL_ERROR (in Chrome)

Ho utilizzato WordPress e il plugin Really Simple SSL.

Qualche idea su come risolvere il mio errore?

3
Commenti

Domanda: 1. Hai installato un certificato SSL? 2. Vuoi che tutte le richieste http vengano reindirizzate a https?

Fayaz Fayaz
11 feb 2017 04:20:59

1- Ho installato un certificato SSL Comodo. Attualmente i visitatori del sito accedono come https://example.com 2 - Voglio reindirizzare: quando i visitatori accedono a https://www.example.com voglio che vengano reindirizzati a https://example.com

Grazie

DinhTv DinhTv
11 feb 2017 04:31:55

Ho fornito una risposta utilizzando mod_rewrite. Tuttavia, se il problema persiste, allora la questione è da qualche altra parte. In quel caso avrò bisogno di maggiori informazioni, ad esempio: usi servizi come Cloudflare? Qual è la tua configurazione SSL CODE? ecc.

Fayaz Fayaz
11 feb 2017 06:44:50
Tutte le risposte alla domanda 1
1

Prima di fornirti il CODICE, lasciami spiegare alcuni punti:

Punto 1:

È meglio consentire solo link https. Mischiare http e https per lo stesso contenuto compromette la sicurezza aggiunta da https. Con http, non puoi mai essere sicuro che i tuoi visitatori vedano la stessa pagina che stai fornendo dal tuo server.

Punto 2:

I motori di ricerca considerano i siti http e https come siti diversi, anche quando il dominio è lo stesso. Quindi, se non configurato correttamente, potresti incorrere in penalizzazioni per duplicati. Pertanto, è consigliato utilizzare https completamente per un migliore SEO.

Punto 3:

Anche con il giusto CODICE .htaccess, potresti ottenere lo stesso errore se l'SSL non è configurato correttamente. Quindi, dopo aver modificato il CODICE .htaccess, è meglio testare la configurazione SSL rispetto agli standard. Puoi utilizzare strumenti come questo.

CODICE Consigliato:

Basandoci sui punti sopra, ecco il CODICE che puoi utilizzare:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTPS}        =off   [OR]
    RewriteCond %{HTTP_HOST}    !^example\.com$
    RewriteRule ^(.*)$          "https://example.com/$1" [R=301,L]

    # restante codice htaccess mod_rewrite per WordPress
</IfModule>

Questo effettuerà i seguenti reindirizzamenti di esempio:

http://www.example.com/     → https://example.com/
http://www.example.com/abc  → https://example.com/abc
https://www.example.com/    → https://example.com/
https://www.example.com/abc → https://example.com/abc

# Inoltre, anche se il tuo sito è raggiungibile tramite IP o
# altri domini o sottodomini, questo CODICE risolverà anche quello
http://Your_Server_IP/abc          → https://example.com/abc
http://sub-dmoani.example.com/abc  → https://example.com/abc
http://www.other-domain.com/abc    → https://example.com/abc

CODICE Non Consigliato:

Se per qualche motivo non vuoi seguire la raccomandazione sopra e vuoi comunque consentire sia http che https, puoi utilizzare il seguente CODICE (basato su questa risposta):

<IfModule mod_rewrite.c>
    RewriteEngine On

    # imposta la variabile del protocollo
    RewriteCond %{HTTPS} =on
    RewriteRule ^(.*)$ - [env=proto:https]
    RewriteCond %{HTTPS} =off
    RewriteRule ^(.*)$ - [env=proto:http]

    RewriteCond %{HTTP_HOST} !^example\.com$
    RewriteRule ^(.*)$       "%{ENV:proto}://example.com/$1" [R=301,L]

    # restante codice htaccess mod_rewrite per WordPress
</IfModule>

Questo effettuerà i seguenti reindirizzamenti di esempio:

http://www.example.com/     → http://example.com/
http://www.example.com/abc  → http://example.com/abc

https://www.example.com/    → https://example.com/
https://www.example.com/abc → https://example.com/abc
11 feb 2017 06:32:23
Commenti

Grazie. Per me, aggiungere questo a .htaccess non causa alcun cambiamento. Sto cercando di reindirizzare https a http (non abbiamo SSL per ora) e contemporaneamente reindirizzare www a non-www. Sia con htaccess che via php in functions.php. Puoi dare un'occhiata alla mia domanda e vedere se puoi aiutare?https://wordpress.stackexchange.com/questions/286464/php-redirect-https-to-http-and-www-to-non-www

Kyle Vassella Kyle Vassella
21 nov 2017 18:50:28