Magento の主な利点は、Magento でやりたいことが何でもできることです:) そうです、HTTPS 製品の URL または相対 URL を出力できます。ただし、ソリューションを選択する前に、Magento の作成者のビジョンについて考えてみましょう。
フロントエンドの HTTPS は、顧客アカウント、支払い方法、チェックアウトなどの特定の領域でのみ機能するように設計されています。製品についてそれほどプライベートなことは何もないため、HTTPS 経由で表示する必要もあります。
デフォルトでは、Magento はページに対しても HTTPS を使用しません (前述)。HTTPS をオンにするには、[フロントエンドで安全な URL を使用する] オプションを [はい] に設定する必要があります。説明したように、これは、一部のプライベート データを含む限られたページ セットでのみ HTTPS を使用します。
したがって、最適なソリューションは、開発しているストアの詳細によって異なります。
1) フロントエンドのすべてのページで HTTPS を使用する場合 - 最善の解決策は、「安全でない」Web URL 構成の「ベース URL」オプションに「https://...」を入れることです。
2) 製品リンクと限られた数のページに対してのみ HTTPS を有効にしたい場合は、そのページのテンプレートをオーバーライドして相対 URL を配置できます。実際のコードは、好きなように実装できます。すでに提案されている最も単純な方法でも問題ありません。
echo trim($_product->getProductUrl(),'http:')
3) フロントエンドですべての製品リンクに HTTPS を使用する場合 - 最善の方法は、Mage_Catalog_Module_Product_Url
モデルをオーバーライドしてメソッドを変更するgetUrl()
ことです - そこに配置する必要があります
$routeParams['_secure'] = true;
これにより、HTTPS プロトコルを使用してすべての製品 URL が生成されます。
4) HTTP ページでのみ HTTP 製品リンクを表示し、HTTPS ページでのみ HTTPS 製品リンクを表示する必要がある場合は、方法 3) をより洗練されたロジックで使用できます。「_secure」パラメータを設定する前に、現在のページのプロトコルを確認してください。
それが役に立てば幸い。