【问题标题】:Magento mini search form from secure pages来自安全页面的 Magento 迷你搜索表单
【发布时间】:2011-10-04 14:19:37
【问题描述】:

我在搜索表单中遇到了问题 22,希望有人可以帮助我。如果您使用标题中的迷你搜索表单,从我们 Magento 商店中的任何安全页面(我的帐户、结帐等),它会将您带到安全搜索结果页面 https://oursite.com/catalogsearch/result。这会导致浏览器警告,因为该页面上有不安全的内容。我想我可以通过修改 CatalogSearch Helper 类来解决这个问题,以便 getResultUrl 函数总是返回一个 http: 链接。但是,这会导致浏览器警告您即将通过非安全连接发送表单数据。所以我似乎找不到对用户来说不危险的解决方案。

有什么想法吗?

【问题讨论】:

    标签: magento


    【解决方案1】:

    我知道这不是正确的 EAV/MVC/1000 行 XML Magento 模块的做法,但是,由于这是一个简单的 http/https 问题,您可以在 .htaccess 中添加几行来进行搜索盒子行为正确:

    RewriteCond %{SERVER_PORT} !^80$
    RewriteRule ^catalogsearch http://www.example.com/catalogsearch/ [R=301,L]
    

    【讨论】:

    • 这似乎适用于我在本地服务器上的简短测试。我将其修改为更通用:RewriteCond %{HTTPS} onRewriteRule ^catalogsearch http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    • ...我认为您在通用重写方面做得非常好。 @Joseph Mastey 确实有一个很好的观点 - 页面上的链接应该始终是 //(即没有 http: 或 https: 甚至 gopher: 在它之前),以便页面自动为页面选择正确的协议。无论如何,这节省了字节,我很高兴'hack'的想法已经被使用了。
    【解决方案2】:

    解决此问题的正确方法是不要在该页面上使用混合内容。如果需要,Magento 通常可以通过 HTTPS 处理任何页面,因此请找到通过 http:// 硬编码的资产并修复它们以正确遵守当前协议。

    【讨论】:

    • 谢谢,@Joseph Mastey,你说得对,这可能是修复它的“正确”方法。不幸的是,其中一个违规者是 twitter 关注按钮,而 twitter 不提供 https 等价物。我已经在第二个答案中测试了 .htaccess 重写规则,这似乎有效,所以我想我会继续这样做,除非你在那里看到任何问题。谢谢:)
    【解决方案3】:

    对我来说,不正确的 url 卡在缓存中(我们在实时服务器上有大量缓存),这导致了我的安全警告。希望这对某人有所帮助。

    【讨论】:

      【解决方案4】:

      问题应该是 - 为什么会发生这种情况? 在非安全页面上进行搜索将在非安全页面上产生结果。 在访问了安全页面后,在非安全页面上搜索将在安全页面上产生结果——这有什么意义?这样做的目的是什么?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多