Apache2 将 https://www 重定向到 https://non-www

Apache2 redirect https://www to https://non-www

我想将 https://www.mydom.com 重定向到 http://mydom.com

我有一个 mydom.conf 变成 apache2/sites-available/

mydom.conf:

#HTTP(www/non-www) -> HTTPS(non-www)
<VirtualHost *:80>

   ServerName mydom.com
   ServerAlias www.mydom.com

   Redirect permanent / https://mydom.com/

</VirtualHost>

#ACTIVATE HTTPS AND REVERSE PROXY -> test-1.0.0
<VirtualHost _default_:443>

   SSLEngine On

   SSLCertificateFile /opt/ssl/new/mydom_com.crt
   SSLCertificateKeyFile /opt/ssl/new/mydom_com.key
   SSLCertificateChainFile /opt/ssl/new/mydom_com.ca-bundle

   BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
   SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

   ServerName mydom.com
   ServerAlias www.mydom.com

   ProxyRequests Off
   ProxyPreserveHost On
   ProxyPass / http://127.0.0.1:8080/test-1.0.0/
   ProxyPassReverse / http://127.0.0.1:8080/test-1.0.0/

</VirtualHost>

有了这个 mydom.conf 它部分起作用了。

http://mydom.comhttp://www.mydom.com 被重定向到 https://mydom.com。这个不错。

我的问题在 https://www.mydom.com 它没有重定向到 https://mydom.com,而是显示来自 https://mydom.com

的内容

如何将 https://www.mydom.com 重定向到 https://mydom.com

只需使用 vi 命令在您网站的 public_html 文件夹或文档根目录中创建一个 .htaccess 文件。在您的 .htacess 文件中添加以下代码。

RewriteCond %{HTTP_HOST} ^www.mydom.com$ RewriteCond %{SERVER_PORT} ^443 RewriteRule ^(.*)$ https://mydom.com/ [R=301]

如果 public_html 文件夹中已有 .htaccess 文件,请尝试使用以下命令进行备份:

$ mv .htaccess .htaccess.bak

$ cp .htaccess .htaccess.bak

希望对您有所帮助。

您可以使用多个虚拟主机块

<VirtualHost _default_:443>

   SSLEngine On

   SSLCertificateFile /opt/ssl/new/mydom_com.crt
   SSLCertificateKeyFile /opt/ssl/new/mydom_com.key
   SSLCertificateChainFile /opt/ssl/new/mydom_com.ca-bundle

   BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
   SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

   ServerName mydom.com

   ProxyRequests Off
   ProxyPreserveHost On
   ProxyPass / http://127.0.0.1:8080/test-1.0.0/
   ProxyPassReverse / http://127.0.0.1:8080/test-1.0.0/

</VirtualHost>

<VirtualHost _default_:443>

   SSLEngine On

   SSLCertificateFile /opt/ssl/new/mydom_com.crt
   SSLCertificateKeyFile /opt/ssl/new/mydom_com.key
   SSLCertificateChainFile /opt/ssl/new/mydom_com.ca-bundle

   BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
   SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

   ServerName www.mydom.com

   Redirect permanent / https://mydom.com/
</VirtualHost>

您唯一需要确保的是证书对 example.comwww.example.com 都有效,这样您就不会在重定向前收到 https 异常。