Redirecționare htaccess https de la www la non-www
Am adăugat redirecționare .htaccess
https
de la www
la non-www
cu:
<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>`
Când vizitez domeniul meu, următoarele redirecționări funcționează fără probleme:
http://www.example.com → http://example.com
http://www.example.com/abc → http://example.com/abc
Dar când vizitez domeniul meu ca https://www.example.com
sau https://www.example.com/abs
, domeniul meu nu redirecționează și afișează codul de eroare: SSL_ERROR_INTERNAL_ERROR_ALERT
(în Firefox) sau ERR_SSL_PROTOCOL_ERROR
(în Chrome)
Am folosit WordPress și plugin-ul Really Simple SSL.
Aveți vreo idee cum să rezolv această eroare?

Înainte de a vă prezenta CODUL, permiteți-mi să explic câteva puncte importante:
Punctul 1:
Este mai bine să permiteți doar link-uri https
. Amestecarea http
și https
pentru același conținut compromite securitatea adăugată de https
. Cu http
, nu puteți fi niciodată sigur că vizitatorii dumneavoastră văd aceeași pagină pe care o furnizați de pe serverul dumneavoastră.
Punctul 2:
Motoarele de căutare consideră site-urile http
și https
ca fiind site-uri diferite, chiar și atunci când domeniul este același. Prin urmare, dacă nu sunt configurate corect, puteți primi penalizări pentru conținut duplicat. De aceea, este recomandat să utilizați https
pe tot parcursul pentru un SEO mai bun.
Punctul 3:
Chiar și cu un COD .htaccess
corect, puteți întâmpina aceeași eroare dacă SSL nu este configurat corespunzător. De aceea, după ce modificați CODUL .htaccess
, este mai bine să testați configurația SSL conform standardelor. Puteți utiliza un instrument precum acesta.
COD Recomandat:
Pe baza punctelor de mai sus, următorul este CODUL pe care îl puteți utiliza:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} =off [OR]
RewriteCond %{HTTP_HOST} !^example\.com$
RewriteRule ^(.*)$ "https://example.com/$1" [R=301,L]
# restul codului htaccess mod_rewrite pentru WordPress
</IfModule>
Acest cod va efectua următoarele redirecționări exemplificate:
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
# În plus, chiar dacă site-ul dumneavoastră este accesibil prin IP sau
# prin alte domenii sau subdomenii, acest cod va rezolva și acele cazuri
http://IP_Serverului/abc → https://example.com/abc
http://subdomeniu.example.com/abc → https://example.com/abc
http://www.alt-domeniu.com/abc → https://example.com/abc
COD Nerecomandat:
Dacă, din anumite motive, nu doriți să urmați recomandarea de mai sus și doriți totuși să permiteți atât http
cât și https
, puteți utiliza următorul COD (bazat pe acest răspuns):
<IfModule mod_rewrite.c>
RewriteEngine On
# setează variabila protocol
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]
# restul codului htaccess mod_rewrite pentru WordPress
</IfModule>
Acest cod va efectua următoarele redirecționări exemplificate:
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

Mulțumesc. Pentru mine, adăugarea acestui lucru în .htaccess nu produce nicio modificare. Încerc să redirecționez https către http (nu avem SSL momentan) și în același timp să redirecționez www către non-www. Fie prin .htaccess, fie prin php în functions.php. Poți să arunci o privire la întrebarea mea și să vezi dacă poți ajuta? https://wordpress.stackexchange.com/questions/286464/php-redirect-https-to-http-and-www-to-non-www
