วิธีรับ url ที่ปลอดภัยโดยไม่มี index.php


10

ฉันต้องการที่จะได้รับโดยไม่ต้องbase-secure-urlindex.php

ฉันเปิดใช้งานindex.phpด้วยเหตุผลบางอย่าง ตอนนี้ฉันมีไฟล์ PHP ที่ไดเรกทอรีรากของ Magento และฉันต้องการเรียกหน้าเว็บที่ปลอดภัยของ Magento จากไฟล์ PHP นี้

หมายเหตุ: ฉันมีร้านค้าหลายแห่งในเว็บไซต์ของฉัน

โปรดระบุแนวคิดเพิ่มเติมเกี่ยวกับสิ่งนี้


คุณช่วยบอกทางนี้ให้ฉันได้ไหม Mage :: getStoreConfig (Mage_Core_Model_Url :: XML_PATH_SECURE_URL); ขอโทษ ฉันยังใหม่กับวีโอไอพี
Sandy

หากคุณมีคำถามใหม่โปรดขอได้โดยคลิกที่ถามคำถามปุ่ม รวมลิงค์ไปยังคำถามนี้หากช่วยระบุบริบท - จากการตรวจสอบ
Jai

สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม เมื่อคุณมีเพียงพอชื่อเสียงคุณจะสามารถที่จะแสดงความคิดเห็นในโพสต์ใด ๆ ; แทนที่จะให้คำตอบที่ไม่จำเป็นต้องชี้แจงจากผู้ถาม - จากการรีวิว
Rohan Hapani

คำตอบ:


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' ได้ทำการหลอกลวงสำหรับฉัน
Ronny

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 () ทั้งหมดเพื่อรักษาความปลอดภัย
Gerfried

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 (รวมถึง template / PHTML)

  1. รับ Base Url เป็นวีโอไอพี:

    $baseurl = Mage::getBaseUrl();

    รับ Base 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');

    Secure Skin 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 หากเป็นกรณีนี้
Raul Sanchez

1

คุณใช้ไม่ได้เหรอ

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

2
เพื่อนมันไม่ถูกวิธี ....
Amit Bera

1
Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_WEB, true) ดังที่กล่าวไว้ที่นี่: stackoverflow.com/questions/15002254/…
Aphroz

มันไม่ให้ผลลัพธ์เมื่อฉันใช้ url ที่ปลอดภัย
Amit Bera

ไม่แน่ใจ แต่ไฟล์. htaccess จะมีประโยชน์
โซลูชันซอฟต์แวร์ Trimantra
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.