我已经浏览了整个互联网,但找不到以下答案:
我们希望在主网址后面的.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
如果有人知道答案会很棒
答案 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();
}