siteground - http a https a través de.htaccess
redirect http to https (10)
Agregue el siguiente código en el archivo .htaccess.
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
cambiar example.com con el dominio de su sitio web
El tutorial de redireccionamiento de URL se puede encontrar desde aquí: redirigir no www a www y HTTP a HTTPS con el archivo .htaccess
He echado un vistazo a las preguntas existentes, pero realmente no he encontrado nada que me sirva.
Actualmente estoy ejecutando un sitio con un certificado SSL seguro. Se puede acceder a https://www.example.co.uk. El problema es que también se puede acceder al sitio en http://www.example.co.uk . No quiero que esto sea posible. Lo necesito para redireccionar de http a https.
Encontré este fragmento de código para usar en un archivo .htaccess.
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.co.uk [NC]
RewriteRule ^(.*)$ https://example.co.uk/$1 [L,R=301]
Esto funciona bien cuando el usuario ingresa example.co.uk en su barra de direcciones, pero también necesito agregar una declaración condicional de algún tipo para que el usuario ingrese ''www.example.co.uk'' o '' http: // www.example.co.uk ''.
Intenté usar los gustos de [OR], pero esto termina creando errores en el servidor.
Cualquier ayuda y sugerencia es apreciada.
Aclamaciones.
Hay formas mejores y más seguras de asegurarse de que todo su tráfico supere https
. Por ejemplo, configurar dos hosts virtuales y redirigir todo el tráfico de su http
a su host https
. Lea más sobre esto en esta respuesta aquí en security.stackexchange.com .
Con la configuración de un host virtual para redirigir puede enviar un estado 301 (redirigir permanentemente) para que el navegador entienda que todas las siguientes solicitudes se deben enviar al servidor https al que se redirigió. Por lo tanto, no se realizarán más solicitudes de http después de la primera respuesta de redirección.
También debe verificar cuidadosamente las respuestas dadas porque con las reglas de reescritura incorrectas puede perder los parámetros de consulta de sus solicitudes entrantes.
Intento todo el código anterior pero cualquier código no funciona para mi sitio web. Luego pruebo este código y este código funciona perfectamente para mi sitio web. Puede usar la siguiente Regla en htaccess:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
//Redirect http to https
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(www/.)?example/.com
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
//Redirect non-www to www
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
</IfModule>
Cambie example.com con su nombre de dominio y lo siento por mi inglés pobre.
Para mi trabajo SÓLO esta variante:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Gracias https://www.reg.ru/support/hosting-i-servery/sajty-i-domeny/kak-dobavit-redirekt/redirekt-s-http-na-https (en ruso)
Para redirigir http://example.com
o http://www.example.com
a https://www.example.com
de una manera sencilla, puede usar la siguiente Regla en htaccess:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond www.%{HTTP_HOST} ^(?:www/.)?(www/..+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [NE,L,R]
[Probado]
La variable % {REQUEST_SCHEME} está disponible desde apache 2.4, esta variable contiene el valor del esquema solicitado (http o https), en apache 2.4 puede usar la siguiente regla:
RewriteEngine on
RewriteCond %{REQUEST_SCHEME} ^http$
RewriteCond %{HTTP_HOST} ^(www/.)?(.+)$ [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]
Prueba esto, lo usé y funciona bien
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Prueba esto:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Fuente: https://www.ndchost.com/wiki/apache/redirect-http-to-https
(Probé tantos bloques diferentes de código, este 3 liner funcionó perfectamente)
Pruebe lo siguiente:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Además, también puede redireccionar según el número de puerto, por ejemplo:
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Esto redirigirá todas las solicitudes recibidas en el puerto 80 a HTTPS.
Si desea redireccionar HTTP a HTTPS y desea agregar www con cada URL, use el htaccess a continuación
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteCond %{HTTP_HOST} !^www/.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
primero redirigirá HTTP a HTTPS y luego se redirigirá a www.
# Switch rewrite engine off in case this was installed under HostPay.
RewriteEngine Off
SetEnv DEFAULT_PHP_VERSION 7
DirectoryIndex index.cgi index.php
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index/.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# RewriteCond %{HTTP_HOST} ^compasscommunity.co.uk/.com$ [NC]
# RewriteRule ^(.*)$ https://www.compasscommunity.co.uk/$1 [L,R=301]