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