是否应该使用查询参数的IT策略的任何理由?

时间:2009-12-24 04:17:45

标签: query-parameters corporate-policy

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

其中一项政策是一个巨大的问题,并为我们带来各种各样的问题:

  

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

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

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

无论如何,这是一个全球性的企业IT政策,最终推理无所谓,只有合规性。虽然改变它很可能是不可能的,但我仍然想了解哪些有效的问题可能促使其制度化。理解思维方式可能是寻找变通方法的第一步。

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

  

推论:每个网址都必须提供通过其他网址提供的唯一内容

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

问题:

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

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

  • 它可能与SEO有关吗?推论使它显得如此。

  • 在此限制下,将数据从一个站点传递到另一个站点可能会有什么变通方法?

1 个答案:

答案 0 :(得分: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字符串,因为网络服务器不会为你做那些,但这没什么大不了的。