2016-11-16 33 views
-3

我正在維護一個電子商務系統,該系統使用不同製造商提供的目錄來顯示產品和產品數據。當選擇產品來查看網址是site-address/catalogue/product-category1/product-category2/product-codeURL中的問題

我們現在的任務是整合一個新的供應商,其產品代碼包括/。這顯然會導致問題,因爲/切斷了產品代碼,因此沒有找到頁面。

我無法刪除目錄導入時的違規字符,因爲完成的訂單導出至客戶本地的後臺系統,客戶在當天結束時創建併發送採購訂單,並且如果產品代碼已被更改供應商系統不承認的代碼。

我們使用php,mariadb,ElasticSearch和樹枝模板引擎。 要保存重複的數據查找,首先到達站點時緩存目錄。

+2

太棒了!你有什麼嘗試? –

+1

您可以使用['urlencode()'](https://secure.php.net/urlencode)在將產品代碼放入URL之前對其進行編碼。 –

回答

1

您必須使用ASCII符號在URL中編碼'/'字符。使用%2F來表示ASCII中的'/'字符。例如,如果您的產品代碼是'prod/23/89',那麼您的網址將是「網站地址/目錄/產品類別1 /產品類別2 /產品%2F23%2F89」。

由於您使用的是PHP,請熟悉使用這些字符編碼url的rawurlencode()函數。

+1

不提供更多信息的道歉,但這正是我所追求的,謝謝。 –

+0

@sparky_hughes呃,我個人不明白爲什麼其他成員已經標記這個問題不清楚,因爲我幾乎感覺到它的自我解釋。 – hecate

+1

URI中的百分比編碼用於UTF-8代碼單元。參見[RFC-3986](https://tools.ietf.org/html/rfc3986#page-12)。例如:搜索À:[https://www.bing.com/search?q=%C3%80](https://www.bing.com/search?q=%C3%80)。 –