apache перезапись URL не работает, но перенаправление работает, почему? - PullRequest
1 голос
/ 24 марта 2012

Я использую перепакованную версию apache, которая называется IHS (IBM HTTP Server). В основном так же, как Apache Web служат с другими функциями. Я пытаюсь выполнить правило перезаписи, чтобы скрыть сложный URL со строками запроса с сокращенным URL.

Первоначально, когда я впервые проверил это с флагом 'R', все работало нормально. Он смог сопоставить шаблон и ответ с правильным длинным URL-адресом путем перенаправления до окончательного URL-адреса.

Например: https://example.com/us/ABC/123 -> https://example.com/webapp/headerText=ABC&categoryId=123

Но после того, как я удалил флаг 'R', моя перезапись не удалась с сообщением "Файл не существует: / opt / IBM / HTTPServer / htdocs / dmcst / webapp". Я пытаюсь показать сокращенный URL, не указав пользователю полный URL. / Webapp / .. - это не локальный путь, а какой-то другой удаленный путь. Почему это не сработает для «переписать», но не «перенаправить»?


Перезаписать двигатель на Alias ​​/ wcsstore "/opt/IBM/WebSphere/AppServer/profiles/dmcwcsst/installedApps/WC_dmcwcsst_cell/WC_dmcwcsst.ear/Stores.war" Alias ​​/ wcs "/opt/IBM/WebSphere/AppServer/profiles/dmcwcsst/installedApps/WC_dmcwcsst_cell/WC_dmcwcsst.ear/CommerceAccelerator.war" Псевдоним / статический "/ opt / IBM / content"

RewriteRule ^ / us / ([az]. ) / ([0-9]. ) /? $ / Webapp / wcs / stores / servlet / AcquisitionBrowseView? LangId = -1 & storeId = 10001 & catalogId = 10051 & headerText = $ 1 & categoryId = $ 2 [NC, R, L]

Ответы [ 2 ]

0 голосов
/ 16 января 2013

У меня была такая же проблема

Похоже, что плагин WAS не дружит с mod_rewrite

Итак, объявление модуля WAS (LoadModule was_ap22_module ...) было перемещено в конец httpd.conf

В моем случае это помогло

0 голосов
/ 24 марта 2012

Из документации WebSphere:

http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.multiplatform.doc%2Finfo%2Fae%2Fae%2Fujpx_rewrite.html

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

Избегайте неприятностей: прокси-сервер поддерживает только перенаправление перезаписи ответы. Следовательно, следующие настройки применимы только к перенаправленные ответы. Эти настройки не применяются к запросам, потому что прокси-сервер не поддерживает перезапись URL для запросов.

...