【问题标题】:Rewriting "outside" URL重写“外部”URL
【发布时间】:2011-08-29 23:15:31
【问题描述】:

我正在寻找一种解决方案来替换 curl 响应中的所有链接到我的网站。

假设我的网站是:example.com,然后我向 site.com 发出 CURL 请求。 site.com 有各种链接:

   <a href="http://smthing.com">Something!</a>
   <some html>......
   <a href="http://google.com">Google!</a>
   <more html>
   <a href="#" onclick="window.location.href='http://somethingElse.com'">Something else</a>

我的目标是为所有链接添加前缀:example.com/?url={THE URL OF THE LINK}(也称为我的网站)。

我当前的解决方案使用正则表达式来“捕获”并处理所有链接。 这在大多数情况下都有效,但有时我会遇到导致正则表达式失败的无效 HTML。 正则表达式还有另一个缺点:我无法捕捉 onclick="" 动作和不同的链接场景。

我听说过几种解决方案,例如重写和反向代理。他们中的任何一个都可以努力实现我的目标?

谢谢..

【问题讨论】:

    标签: url-rewriting


    【解决方案1】:

    您绝对应该能够为此使用正则表达式。但是,您的代码必须更加健壮才能处理内联脚本。分析大量锚属性样本以确定除 /href=""/ 和 /window.location.href/ 之外的所有可能的链接格式。
    您还必须解析引用的脚本文件以查看事件处理程序持有的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-12
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      相关资源
      最近更新 更多