【问题标题】:How to prevent URLs that lead to a 301 redirect to show up in browser history?如何防止导致 301 重定向的 URL 出现在浏览器历史记录中?
【发布时间】:2014-03-18 09:30:57
【问题描述】:

使用 PayPal API,当用户取消流程或被重定向回购物车页面以查看订单时,页面 URL 包含 GET 参数“令牌”。我不希望用户看到该令牌,因此我使用 301 重定向将页面重定向到自身而不使用查询字符串。但是,包含令牌的 URL 保存在浏览器历史记录中(至少在 Firefox 和 Chrome 中),并在地址栏中输入时显示为自动完成选项。

PayPal express checkout API 没有参数来使返回请求 POST 而不是 GET(与带有隐藏字段的基于表单的方法相反)。有什么方法可以进行重定向,而不会将原始 URL 保存在浏览器历史记录中?

我也尝试了 302 和 Refresh: 0; url=... - 但这仍然可以保存 URL...

【问题讨论】:

  • 您能否详细说明这是什么令牌以及您为什么不希望用户看到它?我对 PayPal API 不太熟悉,但我怀疑这是一个安全问题......
  • 我不希望参数对用户可见的原因是令牌是对 PayPal 支付过程的引用,我不希望用户在里面摆弄它为了做一些讨厌的事情。 ;-)(我当然会在服务器端添加安全措施,以防止这些令牌发生任何不良情况!但谁知道......)另外,我真的不喜欢丑陋的 GET 查询字符串。 :p

标签: php url redirect paypal http-status-code-301


【解决方案1】:

我不认为这是可以做到的,因为浏览器将其视为一个唯一的 URL 并将其记录下来以对用户有所帮助。浏览器了解历史记录很重要,但我理解您为什么不需要向用户展示这一点。

如果您没有使用 PayPal API,我建议不要在 URL 中使用 querytring 值,但在这种情况下这可能是不可避免的。

很抱歉,但我认为你坚持下去了。我从未在任何 PHP 或 Classic ASP 应用程序中找到解决此问题的方法。

【讨论】:

  • 那是个坏消息... :( 我不明白为什么 PayPal 提供“rm”变量(设置为 2,将强制返回请求为 POST 而不是 GET)基本的基于表单的 API,但没有 ExpressCheckout。真可惜!
  • 是否可以使用其他支付网关?其中有许多比 PayPal 具有更大的灵活性(和更低的费率)。
猜你喜欢
  • 1970-01-01
  • 2015-02-05
  • 2012-08-19
  • 1970-01-01
  • 2016-08-27
  • 2020-01-30
  • 1970-01-01
  • 1970-01-01
  • 2011-09-06
相关资源
最近更新 更多