2

去年收购了我的公司,该公司构建广告服务器、附属网络、联系表格和 CRM 软件,我们现在正在重新设计我们的技术以适应母公司的 IT 政策和指导方针。

其中一项政策是一个巨大的症结,给我们带来了各种各样的问题:

不得在最终用户可见的任何 URL 中使用查询参数

这包括内容 URL、广告点击目标、重定向以及将显示在地址栏中或鼠标悬停状态栏更新中的任何内容。效果将是没有附属 ID 参数、媒体源跟踪 ID、会话 ID、CMS 内容选择参数等。如果不将参数数据从一页传递到另一页,我们软件的几个基本功能就无法完成。在我们的例子中,这些链接中有许多来自不同的站点或子域,也不可能通过 cookie 传递数据

我得到的唯一理由是查询参数会阻止某些代理缓存正常工作。这对我来说毫无意义——我从未听说过这样的事情——而且没有人愿意或有兴趣详细讨论它。我什至没有给出具体被破坏的内容或创建策略的原因的示例。

无论如何,这是一项全球性的公司 IT 政策,最终推理并不重要,只有合规性。虽然改变它很可能是不可能的,但我仍然想了解哪些有效的担忧可能促使其机构。了解心态可能是找到解决方法的第一步。

我首先想到的解决方法是将参数嵌入 URL 的路径部分并使用 Apache mod_rewrite 提取它们,但这是不可能的,因为:

推论:每个 URL 都必须提供无法通过其他 URL 获得的唯一内容

因此,创建多个实际引用同一页面但在 URL 中包含其他参数数据的 URL 也是不可接受的。

问题:

  • 是否有不使用查询参数的正当理由?

  • 具体来说,当存在查询参数时,哪些代理或系统无法工作?

  • 它可能与SEO有关吗?推论使它看起来如此。

  • 在此限制下,将数据从一个站点传递到另一个站点可能有哪些解决方法?

4

1 回答 1

2

我只有“解决方法”问题的答案:使用 PATH_INFO。

编辑更具体

而不是/banner.php?what=ever&any=thing使用/banner.php/what=ever/any=thing. apache仍将通过/banner.php. 您必须自己处理字符串,因为网络服务器不会为您执行此操作,但这没什么大不了的。/what=ever/any=thing$_SERVER['PATH_INFO']rawurldecodeexplode

于 2009-12-24T04:25:45.240 回答