【问题标题】:Problems with / in URL [closed]URL中的/问题[关闭]
【发布时间】:2016-11-16 15:34:48
【问题描述】:

我正在维护一个电子商务系统,该系统使用不同制造商提供的目录来显示产品和产品数据。选择商品查看时,url为site-address/catalogue/product-category1/product-category2/product-code

我们现在的任务是整合一个产品代码中包含/ 的新供应商。这显然会导致问题,因为/在切断产品代码,因此找不到页面。

我无法删除目录导入时的违规字符,因为完成的订单会导出到客户本地的后台系统,然后在一天结束时创建并传输采购订单,如果产品代码有被修改供应商系统无法识别代码。

我们正在使用 php、mariadb、ElasticSearch 和 twig 模板引擎。 为了保存重复的数据查找,目录在第一次到达站点时被缓存。

【问题讨论】:

  • 太棒了!你试过什么?
  • 您可以使用urlencode()对产品代码进行编码,然后再将其放入URL。

标签: php url


【解决方案1】:

您必须使用 ASCII 符号对 url 中的“/”字符进行编码。使用 %2F 表示 ASCII 中的“/”字符。

例如,如果您的产品代码是“prod/23/89”,那么您的网址将是“site-address/catalogue/product-category1/product-category2/prod%2F23%2F89”。

由于您使用的是 php,因此请熟悉使用此类字符对 url 进行编码的 rawurlencode() 函数。

【讨论】:

  • 很抱歉没有提供更多信息,但这正是我所追求的,谢谢。
  • @sparky_hughes 好吧,我个人只是不明白为什么其他成员将这个问题标记为不清楚,因为我觉得它不言自明。
  • URI 中的百分比编码适用于 UTF-8 代码单元。见RFC-3986。示例:搜索 À:https://www.bing.com/search?q=%C3%80
猜你喜欢
  • 1970-01-01
  • 2014-08-28
  • 1970-01-01
  • 2011-02-24
  • 2012-11-22
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 2021-12-29
相关资源
最近更新 更多