环境Centos与apache

试图设置自动重定向从http到https

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

我已经尝试添加以下到我的httpd.conf,但它没有工作

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

什么好主意吗?


当前回答

如果你有Apache2.4,检查000-default.conf -删除DocumentRoot并添加

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

其他回答

服务器版本:Apache/2.4.29 (Ubuntu)

在网上和apache的官方文档中搜索了很长时间后,唯一适合我的解决方案来自/usr/share/doc/apache2/README.Debian.gz

To enable SSL, type (as user root):

    a2ensite default-ssl
    a2enmod ssl

在/etc/apache2/sites-available/000-default.conf文件中添加

重定向"/" "https://sub.domain.com/"

<VirtualHost *:80>

    #ServerName www.example.com
    DocumentRoot /var/www/owncloud
    Redirect "/" "https://sub.domain.com/"

就是这样。


注:如果你想阅读手册而不提取:

gunzip -cd /usr/share/doc/apache2/README.Debian.gz

请在apache Virtualhosting配置中试试这个 然后重新加载apache服务

RewriteEngine On

RewriteCond %{HTTPS} off


RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

http://www.sslshopper.com/apache-redirect-http-to-https.html

or

http://www.cyberciti.biz/tips/howto-apache-force-https-secure-connections.html

我需要这个来做一些简单的事情,比如将所有http流量从我服务器上的默认apache主页重定向到一个通过https服务的页面。

由于我在配置apache时仍然很绿色,我更倾向于避免直接使用mod_rewrite,而是使用像这样更简单的东西:

<VirtualHost *:80>
  <Location "/">
     Redirect permanent "https://%{HTTP_HOST}%{REQUEST_URI}"
  </Location>
</VirtualHost>

<VirtualHost *:443>
  DocumentRoot "/var/www/html"
  SSLEngine on
  ...
</VirtualHost>

我喜欢这个,因为它允许我使用apache变量,这样我就不必指定实际的主机名,因为它只是一个没有关联域名的IP地址。

引用: https://stackoverflow.com/a/40291044/2089675

如果你有Apache2.4,检查000-default.conf -删除DocumentRoot并添加

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