HTTP к HTTPS в IBMIHS в веб-сфере - PullRequest
       24

HTTP к HTTPS в IBMIHS в веб-сфере

0 голосов
/ 26 сентября 2019

У меня есть httpd.conf:

 .....
    Listen eagnmnmed338:9080
    Listen eagnmnmed338:9443
    .....
    LoadModule rewrite_module modules/mod_rewrite.so
    .....
    <VirtualHost eagnmnmed338:9080>
          RewriteEngine On
          # Disable Trace and Track
          RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
          RewriteRule .* - [F]

          # restrict to HTTP 1.1
          RewriteCond %{THE_REQUEST} !HTTP/1\.1$
          RewriteRule .* - [F]

    </VirtualHost>

    <VirtualHost eagnmnmed338:9443>
          .....
    </VirtualHost>

.....

, он работает как для http, так и для https.

Мне нужно перенаправить запросы http на https.

Я добавляю:

RewriteEngine On
RewriteCond %{SERVER_PORT} =9080
RewriteRule ^http://%{SERVER_NAME}%{SERVER_PORT}%{REQUEST_URI} https://%{SERVER_NAME}:9443/%{REQUEST_URI} [R,L]

до определения виртуального хоста на 9080 в глобальной области.

он не перенаправляет.

Я также добавляю

RewriteRule ^http://%{SERVER_NAME}%{SERVER_PORT}%{REQUEST_URI} https://%{SERVER_NAME}:9443/%{REQUEST_URI} [R,L]

в пределах блока 9080 по умолчанию, но он не работает.

Любое предложение приветствуется.

Некоторые предыстории: запрос http (порт 80) сначала переходит к netsscaler,netscaler перенаправит запрос хостам в качестве баланса нагрузки на 9080.

Спасибо

1 Ответ

0 голосов
/ 26 сентября 2019

Первый параметр RewriteRule соответствует компоненту пути только URL-адреса запроса, а не всего URL-адреса.

Поскольку у вас уже есть два виртуальных хоста, нет необходимости проверять порт или что-либо еще озапрос в любом случае.

Просто в vhost без SSL:

RewriteEngine ON
# Extract the host w/o a port
RewriteCond ^([^:]+) %{HTTP_HOST}
# Note: 9443 may be unnecessary if the client is using canonical ports.
RewriteRule ^/(.*) https://%1:9443/$1 [R]

...