2010-11-23 23 views
27

Tengo un formulario en Magento que se muestra sobre la URL insegura (http) pero necesito que se envíe a la URL segura (https).¿Cómo se obtiene la URL segura de la tienda en Magento?

puedo mostrar la URL Actualmente utilizo el siguiente código:

Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) 

Estoy asumiendo que necesito cambiar la URL_TYPE_WEB a otra cosa. ¿Alguien sabe qué es esa otra cosa?

Respuesta

44

¿Has probado esto?

Mage::getUrl('',array('_secure'=>true)) 

Creo que obtiene la url segura de base, creo.

Mage::getUrl('customer/account/login',array('_secure'=>true)) 

Te llevaré a la página de inicio de sesión. En otras palabras,

Mage::getUrl('module/controller/action',array('_secure'=>true)) 

para poder llegar a cualquier página que desea, simplemente sustituir 'módulo/controlador/acción' para la combinación apropiada.

Editar - Se ha corregido errores tipográficos

+0

Eso funcionó muy bien . Muchas gracias. –

+6

Además de '_secure' también hay' _forced_secure'. Se puede encontrar una referencia completa [aquí] (http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/geturl_function_parameters) – clockworkgeek

+0

excelente trabajo en multisitio – jruzafa

6

Uso:

Mage::getStoreConfig(Mage_Core_Model_Store::XML_PATH_SECURE_BASE_URL); 

para leer el valor de la configuración interior de Magento que se ha establecido en el interior del administrador.

1

Puede hacerlo en código y también desde xml.

Por ejemplo, si desea establecer https para la página de registro de salida después usted tiene que añadir el siguiente código en su config.xml personalizado:

<code> 
     <secure_url> 
       <checkout_onepage>/checkout/onepage</checkout_onepage> 
       <checkout_multishipping>/checkout/multishipping</checkout_multishipping> 
     </secure_url> 
</code> 

Magento tiene una función predeterminada para https por la salida entonces usted puede hacer lo mismo para otras páginas como para la página del cliente:

<code> 
     <secure_url> 
       <customer>/customer/</customer> 
     </secure_url> 
</code> 

Espero que lo ayude.

3

Esto funcionó para mí

echo Mage::getUrl('customer/account/loginPost',array('_secure'=>true)); 

Por ejemplo:

si navega con http continuación

echo Mage::getUrl('customer/account/loginPost',array('_secure'=>true)); 
// http://dominio.com/customer/account/loginPost 

si navega con https continuación

echo Mage::getUrl('customer/account/loginPost',array('_secure'=>true)); 
// https://dominio.com/customer/account/loginPost 
11

http://blog.geekslikeshinythings.com/2014/12/magento-force-secure-urls-https-on-all.html

esto funciona en Mageno 1.9.1 utilizar el archivo config.xml etc app//

<?xml version="1.0"?> 
<config> 
    <frontend> 
    <secure_url> 
     <all>/</all> 
    </secure_url> 
    </frontend> 
</config> 

si el usuario utiliza https, esto debería obligar a todas las URL de reescribir (creada como) a https.

+0

Esto parece funcionar para mí para Mage :: getUrl(), pero NO para Mage :: getBaseUrl() - Extraño, ¿no? – Gerfried

+0

¡Gracias! Ese solucionó mi problema. – user1105491

0

He probado que está funcionando para mí.

Mago :: getUrl ('', array ('_ seguro' => true))

Después de añadir este código finalmente su aspecto como el de abajo

IWD.ProductVideoView.urlGetVideo = "<?php echo Mage::getUrl('iwd_productvideo/player/getvideo/',array('_secure'=>true)); ?>?isAjax=true"; 
Cuestiones relacionadas