Apache2 перенаправить https://www на https://non -www - PullRequest
0 голосов
/ 11 июня 2019

Я хочу перенаправить 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

Ответы [ 2 ]

1 голос
/ 23 июня 2019

Вы можете использовать несколько блоков vhosts

<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 доперенаправление.

1 голос
/ 13 июня 2019

Просто создайте файл .htaccess с помощью команды vi в папке public_html или в корне документа вашего сайта. Добавьте приведенный ниже код в ваш файл .htacess.

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

Если у вас есть существующий файл .htaccess в папке public_html, попробуйте сделать резервную копию, используя следующую команду:

$ mv .htaccess .htaccess.bak

или

$ cp .htaccess .htaccess.bak

Надеюсь, это поможет.

...