http a https a través de .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 statement 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.

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.

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

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)

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:

  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]  

Cambie example.com con su nombre de dominio y lo siento por mi inglés pobre.

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] 

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.

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.

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)

 # 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  RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  # END WordPress # RewriteCond %{HTTP_HOST} ^compasscommunity.co.uk\.com$ [NC] # RewriteRule ^(.*)$ https://www.compasscommunity.co.uk/$1 [L,R=301] 

Dado que este es uno de los principales resultados en la búsqueda, si está intentando agregar una redirección http a https en AWS beanstalk, la solución aceptada no funcionará. Necesita el siguiente código en su lugar:

 RewriteCond %{HTTP:X-Forwarded-Proto} =http RewriteRule ^.*$ https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]