我熟悉使用各种方法根据上下文生成安全的URL,即:
$this->getUrl('my-page', array('_forced_secure' => $this->getRequest()->isSecure()));
这对于构建在安全模式下将直接定向到安全页面的链接非常有用(如果不使用安全模式,则仅链接到非安全页面)。
我要解决的问题是Magento仅将一些特殊页面视为需要安全处理(客户帐户,结帐等)。我更希望Magento 在用户当前处于安全模式时始终使用安全链接,或者在用户处于非安全模式时使用非安全链接。
据我所知,我唯一真正的选择是:
- 修改的每个实例,
$this->getUrl()
使其与上面的代码段相似。 - 设置非安全
base_url
以使用HTTPS,强制所有页面安全。
有没有一种更好的方法,而不必$this->getUrl()
考虑无论用户的上下文如何,都不必更改对每个页面的调用或将所有页面强制转换为HTTPS?
-编辑-
我知道我可以修改/app/code/core/Mage/Core/Model/Url.php->setRouteParams()
方法,尽管我希望有一种更干净的方法。