如何在没有index.php的情况下获取基本的安全URL


10

我想得到base-secure-url没有index.php

index.php出于某种原因启用了该功能。现在,我在Magento根目录下有一个PHP文件,我想从该PHP文件调用Magento安全页面。

注意:我的网站上有多家商店

请对此提供更多想法。


你能告诉我这条路吗?法师:: getStoreConfig(Mage_Core_Model_Url :: XML_PATH_SECURE_URL); 抱歉。我是magento的新手
Sandy

如果您有新问题,请单击“ 提问”按钮提问。如果它有助于提供上下文,请包括此问题的链接。- 评分
武汉佳

这不能为问题提供答案。一旦您拥有足够的声誉,您就可以在任何帖子中发表评论;而是提供不需要问询者澄清的答案。- 评分
罗汉Hapani

Answers:


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

我之所以这样说是因为其他人都没有,但我更喜欢使用Mage::getUrlMage::getBaseUrl。当您不指定页面时,这两个选项都会自动检测该页面是否已经安全。


是否在具有不同域名的多商店上工作
Amit Bera

您可以使用的第二个参数指定商店getStoreConfig。它接受一个I​​D,一个代码(在admin中设置)或一个Mage_Core_Model_Store对象,只需使用代码中可用的任何内容即可。
clockworkgeek

2
用'Mage :: getBaseUrl'替换'Mage :: getUrl'对我有用了
Ronny

11

正如@Aphroz所说,您可以使用

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

为了检索安全的基本网址。这将返回安全网址,因为我们已经通过第二个参数指定了它true。在这里,第一个参数指定为Mage_Core_Model_Store::URL_TYPE_WEB。这意味着该方法返回的值与此系统配置字段相对应web/secure/base_url。该字段是我们在以下位置指定的值

 System  >  Configuration  > Web  >  Secure url

因此,如果此字段未index.php与基本URL一起使用,则该方法将不会与URL一起提供index.php。如果成立index.php,则它将返回相同的值。因此,要确保index.php不存在,您可以使用str_replace函数。


我是唯一认为这是Magento中的错误的人吗?系统应该知道我何时使用安全URL,然后默认将其所有Mage :: getBaseUrl()设置为安全。
Gerfried

5

URL访问列表下方

在CMS页面或静态块中获取URL

  1. 基本网址:

    {{base url=''}}
  2. 商店网址:

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

    也只存储URL

    {{store url=""}}
  3. 媒体网址:

    仅获取媒体URL

    {{media url=''}}

    如果您得到一些文件夹路径

    {{media url='imagefolder/imagename.jpg'}}
  4. 皮肤网址:

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

    仅获得皮肤网址

    {skin url=''}}


获取PHP文件中的URL(包括模板/ PHTML)

  1. 在magento中获取基本网址:

    $baseurl = Mage::getBaseUrl();

    不使用index.php即可获取基本网址

    Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); 
    
    // output: http://example.com/
  2. 当前网址

    $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. 皮肤网址:

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

    不安全的皮肤网址:

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

    安全皮肤网址:

    $this->getSkinUrl('images/imagename.gif', array('_secure'=>true));
  4. 媒体网址

    $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. 获取商店网址:

    $storeUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
  7. 获取首页网址:

    $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);

简短而甜美。


这是最可靠的方法,因为这样的话,它将包括任何要存储的url代码
Raul Sanchez

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.