Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 将HTTP重定向到HTTPS并添加WWW_Apache_Apache2 - Fatal编程技术网

Apache 将HTTP重定向到HTTPS并添加WWW

Apache 将HTTP重定向到HTTPS并添加WWW,apache,apache2,Apache,Apache2,我正在尝试在运行Apache的网站上正确设置HTTPS重定向。我有*.example.com的通配符SSL证书。目前,我的重写规则将所有HTTP通信重定向到相同的HTTPS地址,这对所有子域都非常有效。但当有人试图转到时,它会将他们重定向到,他们的浏览器会抛出一个安全警告,因为我的证书没有覆盖该URL 我想设置服务器,以便任何带有子域的地址都会通过HTTPS重定向到同一地址,而没有子域的地址会通过添加www重定向到该地址: 重定向到 重定向到 重定向到 我的服务器运行的是Ubuntu 16.04

我正在尝试在运行Apache的网站上正确设置HTTPS重定向。我有*.example.com的通配符SSL证书。目前,我的重写规则将所有HTTP通信重定向到相同的HTTPS地址,这对所有子域都非常有效。但当有人试图转到时,它会将他们重定向到,他们的浏览器会抛出一个安全警告,因为我的证书没有覆盖该URL

我想设置服务器,以便任何带有子域的地址都会通过HTTPS重定向到同一地址,而没有子域的地址会通过添加www重定向到该地址:

  • 重定向到
  • 重定向到
  • 重定向到
  • 我的服务器运行的是Ubuntu 16.04、MySQL、PPH 7和Apache 2。我试着阅读官方文件,但大部分都是我自己搞不懂的。下面是我在


    我希望第一条规则(底部)将基本域重定向到添加了www.added的HTTPS,第二条规则将所有其他流量重定向到具有相同url的HTTPS。目前,第二条规则似乎适用于所有情况。

    经过一番阅读,我发现:

    RewriteEngine On
    
    RewriteRule ^http:\/\/example.com https://www.example.com [L]
    
    RewriteCond %{HTTP_HOST} !^example.com$
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L]
    
    RewriteEngine On
    
    RewriteRule ^http:\/\/example.com https://www.example.com [L]
    
    RewriteCond %{HTTP_HOST} !^example.com$
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L]