2016-11-16 17 views
-3

私は、さまざまなメーカーが提供するカタログを使用して製品や製品データを表示する電子商取引システムを維持しています。 URLを表示する製品を選択するときはsite-address/catalogue/product-category1/product-category2/product-codeです。URLの問題

私たちは現在、/を含む製品コードの新しいサプライヤを統合することを任されています。これは、明らかに問題を引き起こしています。これは、/が製品コードを切り捨てるため、ページが見つからないためです。

カタログ輸入時に問題のある文字を削除することはできません。終了注文が顧客のローカルのバックオフィスシステムにエクスポートされるため、その日の終わりに購入注文が作成され、送信されます。サプライヤシステムがコードを認識しない場合に変更されました。

私たちはphp、mariadb、ElasticSearchとtwigテンプレートエンジンを使用しています。 繰り返されるデータ参照を保存するために、カタログはサイトに最初にキャッシュされます。

+2

素晴らしい!何を試しましたか? –

+1

URLに入れる前に['urlencode()'](https://secure.php.net/urlencode)を使ってコードをエンコードすることができます。 –

答えて

1

URLに '/'文字をASCII表記でエンコードする必要があります。 ASCIIで '/'文字を表すには、%2Fを使用します。

たとえば、商品コードが 'prod/23/89'の場合、あなたのURLは「site-address/catalog/product-category1/product-category2/prod%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)。 –