URL中的问题

时间:2016-11-16 15:34:49

标签: php url

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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