Apache 2.4反向代理产生错误的锚点

我在AIX 6.1上运行Apache 2.4.20作为反向代理,以便访问运行在后端服务器上的Oracle商务智能11.1.1.7.150120。

反向代理修改原始HTML代码导致HREF锚点设置错误的地方。

这会导致菜单出现故障(锚点不再位于桌面结构上)。

原始HTML代码(部分):

<a id="selEditDashboard" class="NQWMenuItem NQWMenuItemWIconMixin" href="javascript:void(null)" onclick="EditPage('saw.dll?EditDashboard&amp;PortalPath=%2fusers%2fweblogic%2f_portal&amp;Page=page%201&amp;Done=saw.dll%3fDashboard');return false;" > <table class="MenuItemTable" cellspacing="0" cellpadding="0"> <tr> <td class="MenuItemIconCell"> <img border="0" src="res/sk_FusionFX/catalog/edit_ena.png" alt="Dashboard bearbeiten"/> </td> <td class="MenuItemTextCell" colspan="2">Dashboard bearbeiten </td> </tr> </table> </a> 

HTML代码来自反向代理:

 <a id="selEditDashboard" class="NQWMenuItem NQWMenuItemWIconMixin" href="javascript:void(null)" onclick="EditPage('saw.dll?EditDashboard&amp;PortalPath=%2fusers%2fweblogic%2f_portal&amp;Page=page%201&amp;Done=saw.dll%3fDashboard');return false;" > </a> <table class="MenuItemTable" cellspacing="0" cellpadding="0"> <tr> <td class="MenuItemIconCell"> <img border="0" src="res/sk_FusionFX/catalog/edit_ena.png" alt="Dashboard bearbeiten"> </td> <td class="MenuItemTextCell" colspan="2">Dashboard bearbeiten </td> </tr> </table> 

这里是我的httpd.conf的摘录:

 <IfModule proxy_module> LogLevel info SetOutputFilter INFLATE;proxy-html;DEFLATE SSLProxyEngine On ProxyPreserveHost On ProxyRequests Off ProxyHTMLEnable On RequestHeader unset Accept-Encoding ProxyHTMLCharsetOut * ProxyHTMLStripComments Off ProxyHTMLMeta On ProxyHTMLExtended On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /oa-links.html http://backend_server_and_port/oa-links.html ProxyPassReverse /oa-links.html http://backend_server_and_port/oa-links.html <Location /> Order deny,allow Allow from all </Location> ProxyPass /analytics/ http://backend_server_and_port/analytics/ ProxyPassReverse /analytics/ http://backend_server_and_port/analytics/ <Location /analytics/> ProxyPassReverse /analytics/ Order deny,allow Allow from all </Location> SetEnv proxy-sendchunked 1 Header edit Location ^http://backend_server_and_port/analytics/ https://backend_server_and_port/analytics/ </IfModule> 

请帮忙!

从我可以告诉mod_proxy_html只真正理解HTML 4.01和XHTML 1.0基于https://httpd.apache.org/docs/2.4/mod/mod_proxy_html.html#proxyhtmldoctype

<a>search一个<table>是否被允许在其他答案之中,这表明它在HTML 4中是不允许的,所以它成为了https://stackoverflow.com/questions/6013943/table-tag-inside-anchor-tag我的预感&#xFF0C; mod_proxy_html是“有用的”重写您的文件是有效的HTML 4这是打破你的锚点。

看看https://httpd.apache.org/docs/trunk/mod/mod_proxy_html.html#proxyhtmldoctypebuild议Apache&gt; 2.4可能有更好的智能WRT HTML 5,所以你可以尝试使用开发版本,看看是否有更好的performance。