You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用dynamicRouting后,IBM HTTP Server如何本地转发请求至指定HTML文件

解决方案

1. 优化Rewrite规则终止后续处理

将原规则的[PT,L]替换为[L,END](适用于Apache 2.4+版本,IBM HTTP Server基于此版本构建),确保重写操作完成后直接终止所有后续模块处理,避免请求被http_plugin转发至Liberty节点:

DocumentRoot /opt/IBM/HTTPServer/htdocs
RewriteEngine On

# CONDITION NR1
RewriteCond %{DOCUMENT_ROOT}/break/break_on.html -f
RewriteCond %{DOCUMENT_ROOT}/break/break_on.enable -f
RewriteCond %{SCRIPT_FILENAME} !break/break_on.html
RewriteRule (.*) /break/break_on.html [L,END]

2. 排除本地资源的插件转发规则

若调整Rewrite规则后问题仍存在,需修改plugin-cfg.xml,强制让/break/break_on.html请求由IHS本地处理:

  • 在<UriGroup>节点中添加排除配置:
<UriGroup Name="default_host_URIs">
    <!-- 保留原有URI规则 -->
    <Uri Name="/break/break_on.html" Ignore="true"/>
</UriGroup>
  • 或在IHS的httpd.conf中添加强制本地处理的配置:
<Location "/break/break_on.html">
    SetHandler none
</Location>

3. 确保规则执行顺序正确

将Rewrite规则配置放在http_plugin加载语句(LoadModule was_ap24_module ...)之前,保证重写逻辑在插件捕获请求前优先执行。

问题根因

Liberty动态路由环境下,http_plugin会依据plugin-cfg.xml配置优先转发请求至后端Liberty节点。原规则中的[PT](Passthrough)标志会让重写后的URL继续被后续模块(包括插件)处理,导致本应指向IHS本地资源的请求仍被转发至Liberty,而该资源仅存在于IHS本地,因此返回404错误。

内容的提问来源于stack exchange,提问作者Hubert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:25:21