Я выдергиваю волосы из-за безумно простой проблемы. Мы запускаем WebSphere IHS (Apache) через F5 BigIP. BigIP выполняет для нас перевод https. Наш URL (измененный для Интернета, недействительный): https://superniftyserver.com/lawson/portal.
Когда кто-то набирает именно это без косой черты после портала, Apache предполагает, что «портал» - это файл, а не каталог. Когда Apache узнает, что это такое, он отправляет постоянное перенаправление 301. Но поскольку Apache знает только http, он отправляет URL-адрес как http://superniftyserver.com/lawson/portal/, что затем создает проблемы.
Итак, я попробовал изменить httpd.conf на уровне сервера для mod_rewrite, это одна из десятков комбинаций, которые я пробовал.
RewriteEngine на RewriteRule ^ / lawson / portal (. *) / Lawson / portal / $ 1.
Я тоже пробовал RewriteRule ^ / lawson / portal $ / lawson / portal /
Среди прочего ... Что мне не хватает?
Сначала мы так думали, но это точно проблема с косой чертой в Apache ...

LoadModule rewrite_module modules/mod_rewrite.so
убедитесь, что эта строка находится где-то в вашем файле httpd.conf
Спасибо, я должен был упомянуть, что ... У меня есть строка без комментариев ... LoadModule rewrite_module modules / mod_rewrite.so
Если вы не можете получить ответ по синтаксису RewriteRule, вот два других варианта для вас: Напишите собственный iRule на BigIp (см. F5 DevCentral), который ищет 301 ответ и конвертирует их в SSL; позвольте URL-адресу пройти на ваш сервер WebSphere и выполнить программное перенаправление, которое отправляет HTTPS. Однако, поскольку F5 завершает соединение SSL, вы должны установить настраиваемый вами заголовок (см. PQ86347), чтобы Java request.getScheme () работал так, как вы ожидаете.
Большое спасибо, пока что это мой лучший вариант, если я не могу заставить rewriterule работать ....
Зафиксированный!
SOL6912: Настройка профиля HTTP для перезаписи URL-адресов, чтобы при перенаправлении с сервера HTTP был указан протокол HTTPS.
Обновлено: 07.08.07 12:00
Виртуальный сервер ClientSSL обычно настроен на прием HTTPS-соединений от клиента, расшифровку сеанса SSL и отправку незашифрованного HTTP-запроса на веб-сервер.
Когда запрошенный URI не включает в себя косую черту (косая черта, такая как /, в конце URI), некоторые веб-серверы генерируют любезное перенаправление. Без косой черты в конце веб-сервер сначала будет рассматривать ресурс, указанный в URI, как файл. Если файл не может быть найден, веб-сервер может найти каталог с таким же именем и, если он будет найден, отправить клиенту ответ перенаправления HTTP 302 с завершающей косой чертой. Перенаправление будет возвращено клиенту в режиме HTTP, а не HTTPS, что приведет к сбою сеанса SSL.
Ниже приведен пример того, как ответ перенаправления HTTP 302 вызывает сбой сеанса SSL:
· Чтобы запросить сеанс SSL, пользователь набирает https://www.f5.com/stuff без косой черты в конце.
· Браузер клиента отправляет запрос SSL на виртуальный сервер ClientSSL, который находится в системе BIG-IP LTM.
· Система BIG-IP LTM затем расшифровывает запрос и отправляет команду GET / stuff на веб-сервер.
· Поскольку файл / stuff не существует на веб-сервере, но существует виртуальный каталог / stuff /, веб-сервер отправляет ответ HTTP 302 перенаправления для каталога, но добавляет к ресурсу завершающую косую черту. Когда веб-сервер отправляет ответ перенаправления HTTP 302, он указывает HTTP (не HTTPS).
· Когда клиент получает ответ перенаправления HTTP 302, он отправляет новый запрос виртуальному серверу BIG-IP LTM, который указывает HTTP (не HTTPS). В результате происходит сбой SSL-соединения.
Настройка профиля HTTP для перезаписи URL-адресов
В BIG-IP LTM версии 9.x вы можете настроить профиль HTTP для перезаписи URL-адресов, чтобы перенаправления с сервера HTTP указывали протокол HTTPS. Для этого выполните следующую процедуру:
Войдите в утилиту настройки.
Щелкните Local Traffic.
Щелкните Профили.
Нажмите кнопку "Создать".
Введите имя профиля.
Выберите http в раскрывающемся меню Родительский профиль.
В разделе «Настройки» установите для параметра «Перенаправить перезапись» значение «Все», «Соответствие» или «Узлы», в зависимости от вашей конфигурации.
Например:
o Выберите «Все», чтобы переписать любые перенаправления HTTP 301, 302, 303, 305 или 307 на HTTPS.
o Выберите Соответствие, чтобы переписать перенаправления, когда компоненты пути и URI запроса запроса и перенаправления идентичны (за исключением завершающей косой черты).
o Выберите узел, чтобы переписать перенаправления, когда URI перенаправления содержит IP-адрес узла вместо имени хоста, и вы хотите, чтобы система изменила его на адрес виртуального сервера.
Теперь вы должны связать новый профиль HTTP с виртуальным сервером ClientSSL.
Попробуй это:
# Trailing slash problem
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ https://<t:sitename/>/ [redirect,last]
Это может быть странный вопрос, но меняет ли BigIP URL-адрес каким-либо другим способом?