Як отримати базовий захищений URL без index.php


10

Я хочу вийти base-secure-urlбез index.php.

Я включив index.phpчомусь. Тепер у мене в кореневому каталозі Magento є файл PHP, і я хочу зателефонувати на захищені сторінки Magento із цього PHP-файлу.

Примітка: у мене на сайті є кілька магазинів

Надайте більше ідей щодо цього.


ви можете сказати мені шлях до цього? Mage :: getStoreConfig (Mage_Core_Model_Url :: XML_PATH_SECURE_URL); вибачте. Я новачок у магенто
Сенді

Якщо у вас є нове запитання, будь ласка, задайте його, натиснувши кнопку Задати питання . Додайте посилання на це питання, якщо це допомагає надати контекст. - З огляду
Jai

Це не дає відповіді на запитання. Коли у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію ; натомість надайте відповіді, які не потребують уточнення від запитувача . - З огляду
Рохан Хапані

Відповіді:


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

Я згадую про це тому, що більше нікого немає, але я вважаю за краще використовувати Mage::getUrlабо Mage::getBaseUrl. Обидва автоматично визначають, чи сторінка вже захищена, коли ви не вказуєте її.


це працює в мульти магазині з різним доменним іменем
Amit Bera

Ви можете вказати магазин із другим параметром getStoreConfig. Він приймає ідентифікатор, код (як встановлено в адміністраторі) або Mage_Core_Model_Storeоб'єкт, просто використовуйте все, що є у вашому коді.
clockworkgeek

2
Замінивши "Mage :: getUrl" на "Mage :: getBaseUrl" зробив для мене хитрість
Ронні

11

як сказав @Aphroz, ви можете використовувати

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

щоб отримати захищену базову URL-адресу. Це повертає захищений URL, оскільки ми вказали його через другий параметр true. Тут перший параметр вказаний як Mage_Core_Model_Store::URL_TYPE_WEB. Це означає, що значення повернення методу відповідає цьому полі конфігурації системи web/secure/base_url. Це поле - це значення, яке ми визначаємо

 System  >  Configuration  > Web  >  Secure url

тому якщо це поле не використовується index.phpтам разом із базовим URL-адресом, тоді метод не дасть index.php разом із URL-адресою. Якщо він утримується index.php, то він поверне те саме. Отже, щоб переконатися, що index.php не існує, ви можете використовувати str_replaceфункцію.


Чи я єдиний, хто думає, що це помилка в Магенто? Система повинна знати, коли я перебуваю у захищеній URL-адресі, а потім за замовчуванням захистити весь свій Mage :: getBaseUrl ().
Герфрід

5

Нижче списку доступу URL-адреси

Отримуйте URL-адреси на сторінках CMS або статичних блоках

  1. Базова URL-адреса:

    {{base url=''}}
  2. URL магазину:

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

    також зберігати лише URL-адресу

    {{store url=""}}
  3. URL-адреса медіа:

    отримати лише медіа-URL

    {{media url=''}}

    якщо ви отримаєте якийсь шлях до папки

    {{media url='imagefolder/imagename.jpg'}}
  4. URL-адреса шкіри:

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

    отримати лише шкірну URL-адресу

    {skin url=''}}


Отримуйте URL-адреси у файлах PHP (включаючи шаблони / PHTML)

  1. Отримати базовий URL-адресу в магенто:

    $baseurl = Mage::getBaseUrl();

    Отримати базовий URL без index.php

    Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); 
    
    // output: http://example.com/
  2. Поточна URL-адреса

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

    або

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

    або

    if (!in_array(Mage::app()->getFrontController()->getAction()->getFullActionName(), array('cms_index_noRoute', 'cms_index_defaultNoRoute'))) 
    {
        $currentUrl = Mage::helper('core/url')->getCurrentUrl();
    }
  3. URL-адреса шкіри:

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

    Небезпечна URL-адреса шкіри:

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

    URL-адреса безпечної шкіри:

    $this->getSkinUrl('images/imagename.gif', array('_secure'=>true));
  4. URL-адреса медіа

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

    або

    $mediaUrl = Mage::getBaseUrl('media');
  5. Отримати Js URL:

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

    або

    $jsUrl = Mage::getBaseUrl('js');
  6. отримати URL-адресу магазину:

    $storeUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
  7. Отримати домашню URL-адресу:

    $homeUrl= Mage::helper('core/url')->getHomeUrl();
  8. Отримати контури до каталогу

    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. Створіть URL-адресу модуля:

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

Докладніше про отримання URL-адрес


3

Для цього слід зробити фокус:

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

Короткий і милий.


Це найбільш солідний підхід, оскільки він буде включати будь-який store_code для URL, якщо це так
Рауль Санчес

1

Ви не можете скористатися цим?

str_replace('index.php','whatever.php',Mage::getBaseUrl('web', true));

2
Чувак, це не належним чином ....
Аміт Бера

1
Тоді Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_WEB, правда) , як зазначено тут: stackoverflow.com/questions/15002254 / ...
Aphroz

це не дасть результату, коли я використав захищений URL
Amit Bera

Не впевнений, але файл .htaccess може бути корисним
програмне рішення Trimantra
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.