2012-03-24 3 views
1

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

Первоначально, когда я впервые тестировал это с помощью флага «R», он отлично работает. Он смог сопоставить шаблон и ответ с правильным длинным URL-адресом redirecdt до окончательного 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/.. не является локальным путем, а скорее является другим удаленным путем. Почему это не может «переписать», но не «перенаправить»?


RewriteEngine на Алиас/wcsstore "/opt/IBM/WebSphere/AppServer/profiles/dmcwcsst/installedApps/WC_dmcwcsst_cell/WC_dmcwcsst.ear/Stores.war" алиасов/WCS «/ Opt/IBM/WebSphere /AppServer/profiles/dmcwcsst/installedApps/WC_dmcwcsst_cell/WC_dmcwcsst.ear/CommerceAccelerator.war» Алиас/статический "/ Opt/IBM/содержание"

RewriteRule ^/нам/([аз]. )/([ 0-9].) /? $/Webapp/wcs/stores/servlet/AcquisitionBrowseView? LangId = -1 & storeId = 10001 & catalogId = 10051 & HeaderText = $ 1 & CategoryId = $ 2 [NC, R, L]

ответ

0

Из документации 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-адресов для запросов.

+0

Если я прочитал это правильно, WAS не поддерживает «RewriteRule» прозрачно вперед целевой URL-адреса, но insteads он использует "перенаправлять 301/302? Это не может быть правильно ...! В обычном сценарии с использованием apache httpd я должен выполнять ** переадресацию ** ** переписывать ** взаимозаменяемую базу по моему желанию перенаправить (301/302) или переписать (скрытый запрос/перенаправление), если один работает, тогда другой должен также работать, согласны ли вы? @ paulsm4 – Fang

0

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

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

Так WAS декларация модуль (LoadModule was_ap22_module ...) был перемещен в нижней части HTTPD.Conf

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

Смежные вопросы