我在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&PortalPath=%2fusers%2fweblogic%2f_portal&Page=page%201&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&PortalPath=%2fusers%2fweblogic%2f_portal&Page=page%201&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我的预感, mod_proxy_html是“有用的”重写您的文件是有效的HTML 4这是打破你的锚点。
看看https://httpd.apache.org/docs/trunk/mod/mod_proxy_html.html#proxyhtmldoctypebuild议Apache> 2.4可能有更好的智能WRT HTML 5,所以你可以尝试使用开发版本,看看是否有更好的performance。