Как получить базовый безопасный URL без index.php

10

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

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

Примечание: у меня есть несколько магазинов на моем сайте

Пожалуйста, предоставьте больше идей по этому вопросу.

Амит Бера
источник
Можете ли вы сказать мне путь для этого? Mage :: getStoreConfig (Mage_Core_Model_Url :: XML_PATH_SECURE_URL); Извините. Я новичок в magento
Сэнди
Если у вас есть новый вопрос, задайте его, нажав кнопку « Задать вопрос» . Включите ссылку на этот вопрос, если это помогает обеспечить контекст. - Из обзора
Jai
Это не дает ответа на вопрос. Как только у вас будет достаточно репутации, вы сможете комментировать любой пост ; вместо этого предоставьте ответы, которые не требуют уточнения от автора . - Из обзора
Рохан Хапани

Ответы:

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

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

clockworkgeek
источник
это работает в мульти-магазине с другим доменным именем
Амит Бера
Вы можете указать магазин со вторым параметром getStoreConfig. Он принимает ID, код (как установлено в admin) или 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функцию.

Раджив К Томи
источник
Я единственный, кто считает, что это ошибка в Magento? Система должна знать, когда я нахожусь по безопасному 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 в magento:

    $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));
Aphroz
источник
2
Чувак, это не совсем правильно ...
Амит Бера
1
Затем Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_WEB, true), как упомянуто здесь: stackoverflow.com/questions/15002254/…
Aphroz
это не дает результата, когда я использовал безопасный URL
Амит Бера
Не уверен, но файл .htaccess может быть полезен
Trimantra Software Solution