Http URL से http कैसे बनाये


11

मैं सोच रहा हूं कि कैसे मैगेंटो निर्धारित करता है कि कौन सा पेज सुरक्षित होना चाहिए और कौन सा पेज असुरक्षित होना चाहिए।

मैं जो समझता हूं, मैगनेटो केवल चेकआउट और लॉगिन पृष्ठ को डिफ़ॉल्ट रूप से सुरक्षित बनाता है और मैं frontend/secure_url/....अपने मॉड्यूल के config.xml के माध्यम से कॉन्फ़िगर पथ के तहत निर्दिष्ट करके अन्य पृष्ठों को सुरक्षित बना सकता हूं।

व्यवस्थापक-साइड कॉन्फ़िगरेशन ठीक प्रतीत होता है। SSL फ्रंटएंड और बैकएंड दोनों में सक्षम है। बैकएंड पूरी तरह से https पर है। फ्रंटएंड में ज्यादातर पेज http सहित http के तहत ठीक काम करते हैं, और चेकआउट और लॉगिन पेजों को उम्मीद के मुताबिक https पर पुनर्निर्देशित किया जाता है।

लेकिन कुछ अन्य यूआरएल के https पर पुनर्निर्देशित हो रहे हैं कि मैं एक कस्टम मॉड्यूल के नियंत्रक / कार्रवाई सहित http पर बने रहने की उम्मीद कर रहा था।

मुझे इस पर डिबग करने के लिए कुछ बिंदुओं की आवश्यकता है? क्या कोई अन्य विन्यास है जिसका उपयोग मैं उन्हें पुनर्निर्देशित होने से रोकने के लिए कर सकता हूं?


क्या आप कुछ उदाहरण / कोड दे सकते हैं (उदाहरण के लिए कस्टम मॉड्यूल का XML कॉन्फ़िगरेशन)? इसके अलावा, मैं "डिबगिंग" की बात नहीं करूंगा, जब आप https: // से http: //;) पर पुनर्निर्देशन करने की कोशिश करेंगे
simonthesorcerer

जवाबों:


3

इसके लिए एक फ़ंक्शन है, जिसे ऑन लाइन कहा जाता shouldUrlBeSecureहै ।app/code/core/Mage/Core/Model/Config.php1477

यहाँ पूरा समारोह है:

/**
 * 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];
}

यह देखने के लिए कि कौन से URL सुरक्षित होने चाहिए, आप कथन के Mage::log($secureUrls)अंदर एक साधारण जोड़ सकते हैं if। यह वह है जो मेरी लॉग प्रविष्टि की तरह दिखती है:

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/
)

अब यह पता लगाने की कैसे Magento स्विच HTTPकरने के लिए HTTPS मुझे लगता है कि आप सबसे अधिक संभावना में Zend फ्रेमवर्क में गोता होता libअंदर lib/Zend/Http/*क्योंकि यह सबसे ब्याज की फ़ाइलें हैं। खैर, वैसे भी आशा है कि यह मदद की। सौभाग्य!


3

हैं, तो आप इस्तेमाल किया चाहते हैं के लिए secure url के लिए any other modulesतो आप में कुछ परिवर्तन करने की जरूरत है config.xmlकि मॉड्यूल की .. सबसे पहले दृश्यपटल इस्तेमाल किया टैग के लिए

<secure_url>
            <productfaq>/productfaq</productfaq>
        </secure_url>

और, अगर आप productfaq url के लिए हैं तो बदल दें $this->getUrl('productfaq/index/index', array('_secure'=>true));

मेरा विस्तार पथ \app\code\local\Amit\Productfaq\etc.

Config.xml में नीचे बदलने की आवश्यकता है

     <frontend>
            <routers>
                <productfaq>
                    <use>standard</use>
                    <args>
                        <module>Amit_Productfaq</module>
                        <frontName>onestepcheckout</frontName>
                    </args>
                </productfaq>
            </routers>
            <layout>
                <updates>
                    <productfaq>
                        <file>productfaq.xml</file>
                    </productfaq>
                </updates>
            </layout>
        <!-- add secure url for extesnion, for that  
url productfaq automatically appnend https:  -->
             <secure_url>
                <productfaq>/productfaq</productfaq>
            </secure_url>
        </frontend>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.