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>
- Tenga en cuenta que el módulo SSL requiere certificado. Deberá especificar uno existente (si compró uno) o generar un certificado autofirmado usted mismo.
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]/
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
http://www.sslshopper.com/apache-redirect-http-to-https.html
o
http://www.cyberciti.biz/tips/howto-apache-force-https-secure-connections.html