Problems with / in URL



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

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

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

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

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

例如,如果你的产品代码是"prod/23/89",那么你的url将是"site-address/catalog/product-category1/product-category2/prod%2F23%2F89"。

由于您正在使用php,请熟悉rawurlencode()函数,该函数使用这些字符对url进行编码。

最新更新