Jak zdobyć podstawowy bezpieczny adres URL bez index.php


10

Chcę wyjść base-secure-urlbez index.php.

Z index.phpjakiegoś powodu włączyłem . Teraz mam plik PHP w katalogu głównym Magento i chcę wywołać bezpieczne strony Magento z tego pliku PHP.

Uwaga: w mojej witrynie jest wiele sklepów

Podaj więcej pomysłów na ten temat.


czy możesz mi powiedzieć, jak to zrobić? Mage :: getStoreConfig (Mage_Core_Model_Url :: XML_PATH_SECURE_URL); Przepraszam. Jestem nowy w Magento
Sandy

Jeśli masz nowe pytanie, zadaj je, klikając przycisk Zadaj pytanie . Dołącz link do tego pytania, jeśli pomaga to w zapewnieniu kontekstu. - Z recenzji
Jai

To nie daje odpowiedzi na pytanie. Gdy zdobędziesz wystarczającą reputację , będziesz mógł komentować dowolny post ; zamiast tego podaj odpowiedzi, które nie wymagają wyjaśnienia od pytającego . - Z recenzji
Rohan Hapani

Odpowiedzi:


15
Mage::getStoreConfig(Mage_Core_Model_Url::XML_PATH_SECURE_URL);

Wspominam o tym, ponieważ nikt inny tego nie ma, ale wolę używać Mage::getUrllub Mage::getBaseUrl. Oba automatycznie wykrywają, czy strona jest już bezpieczna, jeśli jej nie określisz.


czy działa na wielu sklepach o różnych nazwach domen
Amit Bera

Możesz określić sklep za pomocą drugiego parametru getStoreConfig. Przyjmuje identyfikator, kod (ustawiony w admin) lub Mage_Core_Model_Storeobiekt, po prostu użyj tego, co masz w kodzie.
clockworkgeek

2
Zastąpienie „Mage :: getUrl” słowem „Mage :: getBaseUrl” załatwiło sprawę
Ronny

11

jak powiedział @Aphroz, możesz użyć

Mage::getBaseUrl( Mage_Core_Model_Store::URL_TYPE_WEB, true );

w celu odzyskania bezpiecznego podstawowego adresu URL. Zwraca bezpieczny adres URL, ponieważ podaliśmy go za pomocą drugiego parametru true. Tutaj pierwszy parametr jest określony jako Mage_Core_Model_Store::URL_TYPE_WEB. Oznacza to, że metoda zwraca wartość odpowiadającą temu polu konfiguracji systemu web/secure/base_url. To pole jest wartością, którą określamy

 System  >  Configuration  > Web  >  Secure url

więc jeśli to pole nie jest index.phptam używane wraz z podstawowym adresem URL, metoda nie poda index.php wraz z adresem URL. Jeśli się utrzyma index.php, zwróci to samo. Aby upewnić się, że nie ma pliku index.php, możesz użyć str_replacefunkcji.


Czy jestem jedynym, który uważa, że ​​to błąd w Magento? System powinien wiedzieć, kiedy mam bezpieczny adres URL, a następnie domyślnie zabezpieczyć wszystkie swoje Mage :: getBaseUrl ().
Gerfried

5

Poniżej listy dostępu do adresów URL

Uzyskaj adresy URL na stronach CMS lub blokach statycznych

  1. Podstawowy adres URL:

    {{base url=''}}
  2. URL sklepu:

    {{store url='test.html'}}

    przechowuj tylko adres URL

    {{store url=""}}
  3. URL mediów:

    Uzyskaj tylko adres URL multimediów

    {{media url=''}}

    jeśli otrzymasz ścieżkę folderu

    {{media url='imagefolder/imagename.jpg'}}
  4. URL skóry:

    {skin url='images/imagename.jpg'}}

    uzyskaj tylko adres URL skórki

    {skin url=''}}


Uzyskaj adresy URL w plikach PHP (w tym szablony / PHTML)

  1. Uzyskaj podstawowy adres URL w magento:

    $baseurl = Mage::getBaseUrl();

    Uzyskaj podstawowy adres URL bez index.php

    Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); 
    
    // output: http://example.com/
  2. Aktualny adres URL

    $currentUrl = Mage::helper('core/url')->getCurrentUrl();

    lub

    $currentUrl = Mage::getUrl('*/*/*', array('_current' => true));

    lub

    if (!in_array(Mage::app()->getFrontController()->getAction()->getFullActionName(), array('cms_index_noRoute', 'cms_index_defaultNoRoute'))) 
    {
        $currentUrl = Mage::helper('core/url')->getCurrentUrl();
    }
  3. URL skóry:

    $skinUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);

    Niezabezpieczony adres URL skóry:

    $skinUrl = $this->getSkinUrl('images/imagename.jpg');

    Bezpieczny URL skóry:

    $this->getSkinUrl('images/imagename.gif', array('_secure'=>true));
  4. URL mediów

    $mediaUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);

    lub

    $mediaUrl = Mage::getBaseUrl('media');
  5. Uzyskaj adres URL Js:

    $jsUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);

    lub

    $jsUrl = Mage::getBaseUrl('js');
  6. Uzyskaj adres URL sklepu:

    $storeUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
  7. Uzyskaj domowy adres URL:

    $homeUrl= Mage::helper('core/url')->getHomeUrl();
  8. Uzyskaj ścieżki katalogu

    Mage::getBaseDir('design') // Get design directory path
    Mage::getBaseDir('code')   // Gives code directory file path
    Mage::getBaseDir('lib')    // Gives lib directory file path
    Mage::getBaseDir('skin')   // Gives skin directory file path
    Mage::getBaseDir('var')    // Gives var directory file path
    Mage::getBaseDir('cache')  // Gives cache directory file path
    Mage::getBaseDir('log')    // Gives log directory file path
  9. Utwórz adres URL modułu:

    Mage::getUrl('module/controller/action');

Uzyskaj więcej informacji na temat uzyskiwania adresów URL


3

To powinno załatwić sprawę:

Mage::getBaseUrl('link',true);

Krótkie i słodkie.


To najsolidniejsze podejście, ponieważ będzie zawierać dowolny kod_sklepu do adresu URL, jeśli tak jest
Raul Sanchez

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.