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.com
和 http://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.com
和 www.example.com
都有效,这样您就不会在重定向前收到 https 异常。
我想将 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.com
和 http://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.com
和 www.example.com
都有效,这样您就不会在重定向前收到 https 异常。