Попробуйте добавить этот код ниже «RewriteEngine on» и посмотрите, работает ли он.
RewriteCond % 80 RewriteRule ^(.*)$ https://server.kibana/$1 [R=301,L]
Использование Apache 2.4 на OS X Yosemite. Нужно изменить этот виртуальный хост для того, чтобы перенаправить http://server.kibana
и http://www.server.kibana
наhttps://server.kibana
Вот это Вхост:
<VirtualHost *:8443> ServerName www.server.kibana ServerAlias server.kibana ServerAdmin admin@server.kibana # RedirectPermanent http://server.kibana https://server.kibana # DocumentRoot /usr/local/var/www/kibana-4.0.2-darwin-x64/src/public SSLEngine on SSLCertificateFile "/usr/local/etc/apache2/2.4/ssl-keys/server.crt" SSLCertificateKeyFile "/usr/local/etc/apache2/2.4/ssl-keys/server.key" # # Proxy # ProxyRequests Off <Proxy *> Order Allow,Deny Allow from all AuthType Basic AuthName "Authenticated proxy" AuthUserFile /usr/local/etc/apache2/2.4/elastic.htpwd Require valid-user </Proxy> ProxyPass / http://127.0.0.1:5601 ProxyPassReverse / http://127.0.0.1:5601 RewriteEngine on RewriteCond %/% !-f RewriteRule .* http://127.0.0.1:5601% [P,QSA] ErrorLog /usr/local/var/log/apache2/kibana_error.log LogLevel warn CustomLog /usr/local/var/log/apache2/kibana_access.log combined </VirtualHost>
Любые предложения, что добавить или как изменить RewriteRule и RewriteCond? Thanx!
Попробуйте добавить этот код ниже «RewriteEngine on» и посмотрите, работает ли он.
RewriteCond % 80 RewriteRule ^(.*)$ https://server.kibana/$1 [R=301,L]
Вы можете использовать это и переписать домен, на который выдан сертификат:
RewriteCond % !=on [NC] RewriteRule ^(.*) https://www.example.com$1 [R=301,L]
Или используйте этот включаемый файл, где вы хотите применить SSL, при этом предоставляя HTTP-доступ к частям сервера.
# Script to require SSL <If "% == 'on'"> SSLOptions +StrictRequire SSLRequireSSL </If> <Else> RedirectMatch permanent ^/?(.*) https://www.example.com/$1 </Else>
Вы могли бы использовать %
вместо www.example.com
. Это хорошо работает с обычным сертификатом.
RewriteCond % !=on [NC] RewriteRule ^(.*) https://%$1 [R=301,L]
Переменная %
содержит имя хоста из запроса и может использоваться вместо www.exaxmple.com
. Однако это не может быть имя хоста, которое соответствует сертификату. Он работает с многодоменными сертификатами.
RewriteCond % !=on [NC] RewriteRule ^(.*) https://%$1 [R=301,L]
Добавление UseCanonicalName dns
в вашу конфигурацию UseCanonicalName dns
предоставит SERVER_NAME
от DNS. Однако вам необходимо убедиться, что DNS предоставляет нужный домен. Если это работает, вы можете использовать одну и ту же конфигурацию для всех серверов. В качестве альтернативы, вы можете включить небольшой файл для конкретного сервера, чтобы указать имя сервера.
Вам нужно прослушивать разные порты для HTTP и HTTPS. Протестируйте каждый перед включением перезаписи. Это минимальная конфигурация для сайта, который прослушивает HTTP и HTTPS и перенаправляет все запросы на HTTPS. Для перенаправления потребуется порт, если используются нестандартные порты. Эта конфигурация основана на том, что доступ к каталогу настраивается вне определения виртуального хоста.
<VirtualHost *:80 *:443> ServerAdmin webmaster@systemajik.com DocumentRoot /var/www/ ServerName www.example.com ServerAlias example.com SSLEngine On SSLCipherSuite HIGH:MEDIUM SSLCertificateFile /etc/ssl/certs/www.example.com-cert.pem SSLCertificateKeyFile /etc/ssl/private/www.example.com-key.pem SSLCACertificatePath /etc/ssl/certs/ RewriteEngine On RewriteCond % !=on [NC] RewriteRule ^(.*) https://%$1 [R=301,L] </VirtualHost>