Вот контекст:Apache переписывают перед тем mod_jk (удалить WWW)
- Я работаю с Centos 7 апача 2.4.6 и TOMCAT 8.0.
- У меня есть классический веб-сайт php, который хранится в папке/var/www.
- У меня есть сайт JEE, который хранится в папке webapps tomcat.
- У меня есть подстановочный сертификат ssl (подписанный).
Вот что я хочу:
- Я хочу, чтобы все доступы к серверу, чтобы быть перенаправлены на нужный сайт, с HTTPS и без WWW.
Вот примеры использования:
- URL 'example.com' ==> перенаправлены на HTTPS OK
- URL 'www.example.com' ==> перенаправлены HTTPS + удалить WWW OK
URL 'https://www.example.com' ==> держать HTTPS + удалить WWW OK
URL 'test.example.com' ==> перенаправлены на HTTPS OK
- URL 'www.test.example.com' ==> перенаправленный https + удалить www OK
- URL '' ==> KO не перенаправлен - браузер отображает страницу, в которой говорится, что сайт плохо настроен и соединение не защищено (потому что подстановочный знак ssl не охватывает 2 уровня)
Последнее, что я пытаюсь исправить.
Вот моя конфигурация:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect/https://example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName test.example.com
ServerAlias www.test.example.com
Redirect/https://test.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/public/example
SSLEngine on
SSLCertificateFile xxx
SSLCertificateKeyFile xxx
SSLCertificateChainFile xxx
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule^https://%1%{REQUEST_URI} [L,NE,R=301]
</VirtualHost>
<VirtualHost *:443>
ServerName test.example.com
ServerAlias www.test.example.com
SSLEngine on
SSLCertificateFile xxx
SSLCertificateKeyFile xxx
SSLCertificateChainFile xxx
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule^https://%1%{REQUEST_URI} [L,NE,R=301]
JkMount/worker_test
JkMount /* worker_test
</VirtualHost>
Таким образом, кажется, что я почти там, но что я делаю не так?