Magento在主网址后获取网址

时间:2013-04-24 16:10:12

标签: magento php

我已经浏览了整个互联网,但找不到以下答案:

我们希望在主网址后面的.phtml中获取Magento中的部分,如果:

domain.com/shoes.html我们只想获得shoes.html

这很重要,因为我们在.nl和.be中有一个multishop,我们想要使用hreflang。我们需要在两个商店中提供两个商店的网址,以及.be和.nl,然后是子类别或产品网址。

在.phtml中,您可以使用以下内容获取当前网址:helper('core / url') - > getCurrentUrl();?>

使用该代码,您将获得总网址,以及domain.com/shoes.html,我们只需要部分shoes.html

如果有人知道答案会很棒

5 个答案:

答案 0 :(得分:25)

你可以这样做:

$urlString = Mage::helper('core/url')->getCurrentUrl();
$url = Mage::getSingleton('core/url')->parseUrl($urlString);
$path = $url->getPath();

$ path将包含不包含域名的URL。

答案 1 :(得分:8)

您可以使用PHP的basename方法获取该文件名

$url = Mage::helper('core/url')->getCurrentUrl(); //http://domain.com/shoes.html
echo basename($url); //outputs shoes.html

答案 2 :(得分:4)

我在这里提出了一些建议,首先是getBaseUrl()包含端口号,其次我的基本URL包括商店目录,例如: www.example.com/store(包含在getBaseUrl()和RightThing中)。答案是查看getCurrentUrl()的代码并创建我自己当前没有隐藏端口的URL。

以下代码对我有用:

<?php
$request = Mage::app()->getRequest();
$port = ':' . $request->getServer('SERVER_PORT');

$currentUrl = $request->getScheme() . '://' . $request->getHttpHost() . $port . $request->getServer('REQUEST_URI');

$relUrl = str_replace(Mage::getBaseUrl(), '', $currentUrl);
    echo '<p>Base: ' .  Mage::getBaseUrl() . '</p>';
    echo '<p>This: ' . $currentUrl . '</p>';
    echo '<p>Repl: ' . $relUrl . '</p>';
?>

答案 3 :(得分:1)

有许多方法可以满足您的需求,这完全取决于您想要的内容。您可以在执行时获取当前网址,并使用Mage::getBaseUrl()删除基本网址(str_replace)。

或者,您可以使用$_SERVER['REQUEST_URI']

答案 4 :(得分:1)

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

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

上面的代码可能无法按预期工作。找到当前URL的更好方法是使用以下代码:

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