redireccionar redirecciona peticiones htaccess linux apache webserver

linux - redirecciona - http a https redirección de apache



redireccionar peticiones http a https (8)

Medio ambiente Centos con apache

Intentando configurar la redirección automática de http a https

From manage.mydomain.com --- To ---> https://manage.mydomain.com

He intentado agregar lo siguiente a mi httpd.conf pero no funcionó

RewriteEngine on ReWriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]

¿Algunas ideas?


Busqué apache redirect http to https para apache redirect http to https y aterrizó aquí. Esto es lo que hice en ubuntu:

1) Habilitar módulos

sudo a2enmod rewrite sudo a2enmod ssl

2) Edita la configuración de tu sitio

Editar archivo

/etc/apache2/sites-available/000-default.conf

El contenido debe ser:

<VirtualHost *:80> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> <VirtualHost *:443> SSLEngine on SSLCertificateFile <path to your crt file> SSLCertificateKeyFile <path to your private key file> # Rest of your site config # ... </VirtualHost>

3) Reinicia apache2

sudo service apache2 restart


De hecho, he seguido este ejemplo y funcionó para mí :)

NameVirtualHost *:80 <VirtualHost *:80> ServerName mysite.example.com DocumentRoot /usr/local/apache2/htdocs Redirect permanent / https://mysite.example.com/ </VirtualHost> <VirtualHost _default_:443> ServerName mysite.example.com DocumentRoot /usr/local/apache2/htdocs SSLEngine On # etc... </VirtualHost>

Entonces hazlo:

/etc/init.d/httpd restart


El uso de mod_rewrite no es la forma recomendada, en su lugar utiliza el host virtual y redirige.

En caso, si estás inclinado a hacer uso de mod_rewrite:

RewriteEngine On # This will enable the Rewrite capabilities RewriteCond %{HTTPS} !=on # This checks to make sure the connection is not already HTTPS RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] # This rule will redirect users from their original location, to the same location but using HTTPS. # i.e. http://www.example.com/foo/ to https://www.example.com/foo/ # The leading slash is made optional so that this will work either in # httpd.conf or .htaccess context

Referencia: Httpd Wiki - RewriteHTTPToHTTPS

Si está buscando una redirección permanente 301, entonces la bandera de redirección debe ser como,

R=301

así que la RewriteRule será como,

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]


En realidad, su tema pertenece a https://serverfault.com/ pero aún puede intentar verificar estas directivas .htaccess :

RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*) https://%{HTTP_HOST}/$1


Este código funciona para mí.

# ----------port 80---------- RewriteEngine on # redirect http non-www to https www RewriteCond %{HTTPS} off RewriteCond %{SERVER_NAME} =example.com RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] # redirect http www to https www RewriteCond %{HTTPS} off RewriteCond %{SERVER_NAME} =www.example.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

# ----------port 443---------- RewriteEngine on # redirect https non-www to https www RewriteCond %{SERVER_NAME} !^www/.(.*)$ [NC] RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]


Esto funcionó para mí:

RewriteCond %{HTTPS} =off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L,R=301]


Si tienes Apache2.4, marca 000-default.conf - elimina DocumentRoot y agrega

Redirect permanent / https://[your-domain]/