Làm thế nào để có được url an toàn cơ sở mà không có index.php


10

Tôi muốn có được base-secure-urlmà không có index.php.

Tôi kích hoạt index.phpvì một số lý do. Bây giờ tôi có một tệp PHP tại thư mục gốc Magento và tôi muốn gọi các trang bảo mật Magento từ tệp PHP này.

Lưu ý: tôi có nhiều cửa hàng trong trang web của mình

Vui lòng cung cấp thêm ý tưởng về điều này.


bạn có thể cho tôi biết con đường cho việc này? Mage :: getStoreConfig (Mage_Core_Model_Url :: XML_PATH_SECURE_URL); lấy làm tiếc. Tôi mới biết về magento
Sandy

Nếu bạn có một câu hỏi mới, vui lòng hỏi nó bằng cách nhấp vào nút Hỏi câu hỏi . Bao gồm một liên kết đến câu hỏi này nếu nó giúp cung cấp bối cảnh. - Từ đánh giá
Jai

Điều này không cung cấp một câu trả lời cho câu hỏi. Một khi bạn có đủ danh tiếng, bạn sẽ có thể nhận xét về bất kỳ bài đăng nào ; thay vào đó, cung cấp câu trả lời không yêu cầu làm rõ từ người hỏi . - Từ đánh giá
Rohan Hapani

Câu trả lời:


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

Tôi đề cập đến điều này bởi vì không ai khác có, nhưng tôi thích sử dụng Mage::getUrlhoặc Mage::getBaseUrl. Cả hai đều tự động phát hiện nếu trang đã được bảo mật khi bạn không chỉ định nó.


nó có hoạt động trên nhiều cửa hàng với tên miền khác nhau không
Amit Bera

Bạn có thể chỉ định một cửa hàng với tham số thứ hai là getStoreConfig. Nó chấp nhận một ID, một mã (như được đặt trong quản trị viên) hoặc một Mage_Core_Model_Stoređối tượng, chỉ cần sử dụng bất cứ thứ gì bạn có sẵn trong mã của mình.
clockworkgeek

2
Thay thế 'Mage :: getUrl' bằng 'Mage :: getBaseUrl' đã giúp tôi
Ronny

11

như @Aphroz đã nói, bạn có thể sử dụng

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

để lấy url cơ sở an toàn. Điều này trả về url an toàn vì chúng tôi đã chỉ định nó thông qua tham số thứ hai true. Ở đây tham số đầu tiên được chỉ định là Mage_Core_Model_Store::URL_TYPE_WEB. Điều này có nghĩa là phương thức trả về giá trị tương ứng với trường cấu hình hệ thống này web/secure/base_url. Trường này là giá trị mà chúng tôi chỉ định tại

 System  >  Configuration  > Web  >  Secure url

vì vậy nếu trường này không sử dụng index.phpở đó cùng với url cơ sở, thì phương thức sẽ không cung cấp index.php cùng với url. Nếu nó giữ index.php, thì nó sẽ trả lại như cũ. Vì vậy, để đảm bảo index.php không có, bạn có thể sử dụng str_replacehàm.


Tôi có phải là người duy nhất nghĩ rằng đây là một lỗi trong Magento không? Hệ thống sẽ biết khi tôi sử dụng URL bảo mật và sau đó mặc định tất cả Mage :: getBaseUrl () của nó sẽ được bảo mật.
Gerfried

5

Bên dưới danh sách truy cập URL

Nhận URL trong trang CMS hoặc khối tĩnh

  1. URL cơ sở:

    {{base url=''}}
  2. Lưu trữ URL:

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

    cũng chỉ lưu trữ URL

    {{store url=""}}
  3. URL phương tiện:

    chỉ nhận URL phương tiện

    {{media url=''}}

    nếu bạn nhận được một số đường dẫn thư mục

    {{media url='imagefolder/imagename.jpg'}}
  4. URL da:

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

    chỉ nhận URL da

    {skin url=''}}


Nhận URL trong các tệp PHP (bao gồm các mẫu / PHTML)

  1. Nhận Url cơ sở trong magento:

    $baseurl = Mage::getBaseUrl();

    Nhận Base Url mà không có index.php

    Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); 
    
    // output: http://example.com/
  2. Url hiện tại

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

    hoặc là

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

    hoặc là

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

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

    URL da không an toàn:

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

    URL da an toàn:

    $this->getSkinUrl('images/imagename.gif', array('_secure'=>true));
  4. URL phương tiện truyền thông

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

    hoặc là

    $mediaUrl = Mage::getBaseUrl('media');
  5. Nhận URL của Js:

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

    hoặc là

    $jsUrl = Mage::getBaseUrl('js');
  6. lấy URL cửa hàng:

    $storeUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
  7. Nhận URL Trang chủ:

    $homeUrl= Mage::helper('core/url')->getHomeUrl();
  8. Nhận đường dẫn thư mục

    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. Tạo URL mô-đun:

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

Nhận thêm chi tiết về nhận URL


3

Cái này cần phải dùng mẹo:

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

Ngắn và ngọt.


Đó là cách tiếp cận chắc chắn nhất, vì nó sẽ bao gồm bất kỳ store_code nào cho url, nếu đó là trường hợp
Raul Sanchez

1

Bạn không thể sử dụng cái này?

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

2
Anh bạn, đó không phải là cách thích hợp ....
Amit Bera

1
Sau đó, Mage :: getBaseUrl (Mage_Core_Model_Store :: URL_TYPE_weB, đúng) như đã đề cập ở đây: stackoverflow.com/questions/15002254/iêu
Aphroz

nó không cho kết quả khi tôi sử dụng url an toàn
Amit Bera

Không chắc chắn, nhưng tệp .htaccess có thể hữu ích
Giải pháp phần mềm Trimantra
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.