gpt4 book ai didi

Magento getProductUrl() 总是返回 HTTP

转载 作者:行者123 更新时间:2023-12-04 17:02:22 25 4
gpt4 key购买 nike

即使我使用 HTTPS,Magento 的 getProductUrl() 似乎总是返回一个 HTTP URL。有什么方法可以自动切换到 HTTPS? (或让它返回相对协议(protocol) url)。

我会说这是一个相当“标准”的配置。

基本 URL 是 http://example.com/

安全 URL 为 https://example.com/

在前端使用安全 URL 是否

基本链接 URL 是 {{unsecure_base_url}}

我知道我可以将上面的内容更改为 {{secure_base_url}} 但是我不想强制从 HTTP 更改为 HTTPS,我只需要它保持相对。

最佳答案

Magento 的主要好处是你可以用它做任何你想做的事情:) 所以,是的,你可以输出 HTTPS 产品 url 或相关的。但是,在选择解决方案之前,让我们考虑一下 Magento 作者的愿景。

前端的 HTTPS 仅适用于特定领域,如客户帐户、付款方式、结帐等。产品没有什么私密性,因此也需要通过 HTTPS 进行查看。

默认情况下,Magento 甚至对上面提到的页面也不使用 HTTPS。为了打开 HTTPS,“在前端使用安全 URL”选项必须设置为"is"。如前所述,它将仅在包含一些私有(private)数据的有限页面集中使用 HTTPS。

因此,最适合您的解决方案取决于您正在开发的商店的具体情况。

1)如果您想为前端的所有页面使用 HTTPS - 那么最好的解决方案是将“https://...”放入“不安全”Web URL 配置的“Base URL”选项中。

2) 如果您只想为产品链接和有限数量的页面打开 HTTPS,那么您可以覆盖该页面的模板以放置相对 url。实际的代码可以用任何你喜欢的方式实现,即使是最简单的已经提出的方式也可以:

echo trim($_product->getProductUrl(),'http:')

3) 如果您想为前端的所有产品链接启用 HTTPS - 那么最好的方法是覆盖 Mage_Catalog_Module_Product_Url型号及变更方法 getUrl() - 你需要放在那里
$routeParams['_secure'] = true;

这将生成所有使用 HTTPS 协议(protocol)的产品 URL。

4)如果你需要只在HTTP页面显示HTTP产品链接,而HTTPS产品链接只在HTTPS页面显示,那么你可以使用方法3),逻辑更复杂:在设置'_secure'参数之前检查当前页面的协议(protocol)。

希望能帮助到你。

关于Magento getProductUrl() 总是返回 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12522529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com