如何通过DataPower加载亚马逊网站?导航子页面遇URL未找到错误
DataPower动态路由访问亚马逊分类页报URL Not Found故障排查
故障现象
通过DataPower动态路由+XSLT加载亚马逊主页正常,但导航至“Best Sellers”等分类页面时,返回如下SOAP错误:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Body> <env:Fault> <faultcode>env:Client</faultcode> <faultstring>URL Not Found (from client)</faultstring> </env:Fault> </env:Body> </env:Envelope>
排查与解决步骤
修正XSLT的路径转换逻辑
亚马逊页面内的分类链接多为相对路径(如/gp/bestsellers),若XSLT未将这些路径转为DataPower主机为前缀的绝对路径,浏览器会直接请求DataPower主机下的该路径,导致路由匹配失败。需在XSLT中添加处理逻辑,将所有<a>的href、<form>的action等属性,从相对路径替换为https://[DataPower主机名]/[原相对路径]格式。完善DataPower路由规则覆盖范围
检查DataPower的路由/URL重写规则,确认是否仅匹配了主页的/路径,未覆盖亚马逊的分类路径(如/gp/*、/b/*等)。需添加包含这类路径的匹配规则,确保所有亚马逊页面路径都能被正确转发至目标域名。校验Host请求头的处理配置
DataPower转发请求到亚马逊时,需将Host头设置为亚马逊域名(如www.amazon.com),否则亚马逊可能返回无效响应或拒绝请求。同时确保XSLT在返回页面时,将页面内的亚马逊域名替换为DataPower主机名,避免客户端绕开代理直接请求亚马逊。检查XSLT对动态链接的处理
部分导航链接可能存在于JavaScript代码中(而非静态HTML标签),若XSLT仅处理了HTML节点的路径,会遗漏动态生成的链接。需扩展XSLT逻辑,扫描并替换脚本内的亚马逊路径字符串。
内容的提问来源于stack exchange,提问作者Itachi Uchiha
相关产品推荐
相关产品推荐

