Có một chức năng chỉ cho điều đó, được gọi là shouldUrlBeSecure
nằm app/code/core/Mage/Core/Model/Config.php
trên dòng 1477
.
Đây là chức năng hoàn chỉnh:
/**
* Check whether given path should be secure according to configuration security requirements for URL
* "Secure" should not be confused with https protocol, it is about web/secure/*_url settings usage only
*
* @param string $url
* @return bool
*/
public function shouldUrlBeSecure($url)
{
if (!Mage::getStoreConfigFlag(Mage_Core_Model_Store::XML_PATH_SECURE_IN_FRONTEND)) {
return false;
}
if (!isset($this->_secureUrlCache[$url])) {
$this->_secureUrlCache[$url] = false;
$secureUrls = $this->getNode('frontend/secure_url');
foreach ($secureUrls->children() as $match) {
if (strpos($url, (string)$match) === 0) {
$this->_secureUrlCache[$url] = true;
break;
}
}
}
return $this->_secureUrlCache[$url];
}
Để xem URL nào cần được bảo mật, bạn có thể thêm một đơn giản Mage::log($secureUrls)
bên trong if
câu lệnh. Đây là mục nhật ký của tôi trông như sau:
2014-02-12T11:55:26+00:00 DEBUG (7): Mage_Core_Model_Config_Element Object
(
[install] => /install/wizard/checkSecureHost
[customer] => /customer/
[sales] => /sales/
[authorizenet_paygate] => /paygate/authorizenet_payment
[checkout_onepage] => /checkout/onepage
[checkout_multishipping] => /checkout/multishipping
[paypal_express] => /paypal/express
[paypal_standard] => /paypal/standard
[paypal_express_callbackshippingoptions] => paypal/express/callbackshippingoptions
[googlecheckout_redirect] => /googlecheckout/redirect/
[googlecheckout_beacon] => /googlecheckout/api/beacon/
[googlecheckout_api] => /googlecheckout/api/
[review_customer] => /review/customer/
[tag_customer] => /tag/customer/
[wishlist] => /wishlist/
[paypaluk_express] => /paypaluk/express
[rss_catalog_review] => /rss/catalog/review
[rss_order_new] => /rss/order/new
[rss_catalog_notifystock] => /rss/catalog/notifystock
[centinel] => /centinel/
[newsletter_manage] => /newsletter/manage/
[downloadable] => /downloadable/customer/
[downloadable_download] => /downloadable/download/
[ogone_api] => /ogone/api
[persistent_onepage_register] => /persistent/index/saveMethod
[checkout_cart] => /checkout/cart
[storecredit_info] => /storecredit/info/
[giftcard_customer] => /giftcard/customer/
[enterprise_pbridge_pbridge] => /enterprise_pbridge/pbridge/
[invitation] => /invitation/
)
Bây giờ để tìm hiểu làm thế nào Magento chuyển HTTP
sang HTTPS
tôi nghĩ rằng rất có thể bạn sẽ đi sâu vào khung Zend ở lib
bên trong lib/Zend/Http/*
vì nó chứa các tệp được quan tâm nhất. Vâng, dù sao cũng hy vọng điều này sẽ giúp. Chúc may mắn!