Ответ 1
Вы можете сделать это:
$urlString = Mage::helper('core/url')->getCurrentUrl();
$url = Mage::getSingleton('core/url')->parseUrl($urlString);
$path = $url->getPath();
$path будет содержать URL-адрес, исключающий доменное имя.
Я посмотрел по всему Интернету, но не могу найти следующий ответ:
Мы хотим получить часть в Magento в .phtml после основного URL-адреса, если:
domain.com/shoes.html мы хотим получить только shoes.html
Это важно, потому что у нас есть многоборье в .nl и .be, и мы хотим использовать hreflang. Мы должны предоставить в обоих магазинах URL-адрес обоих магазинов, а также из .be и .nl, а затем с подкатегорией или URL-адресом продукта.
В .phtml вы можете получить текущий url с помощью: helper ('core/url') → getCurrentUrl();? >
С помощью этого кода вы получите общий URL-адрес domain.com/shoes.html, и нам нужна только часть shoes.html
Было бы здорово, если бы кто-нибудь знал ответ
Вы можете сделать это:
$urlString = Mage::helper('core/url')->getCurrentUrl();
$url = Mage::getSingleton('core/url')->parseUrl($urlString);
$path = $url->getPath();
$path будет содержать URL-адрес, исключающий доменное имя.
Вы можете получить это имя файла, используя метод basename PHP
$url = Mage::helper('core/url')->getCurrentUrl(); //http://domain.com/shoes.html
echo basename($url); //outputs shoes.html
У меня было две проблемы с некоторыми из предложений здесь: во-первых, 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>';
?>
Есть много способов получить то, о чем вы просите, это просто зависит именно от того, что вы хотите. Вы можете получить текущий url, как вы делаете, и удалить базовый url (Mage::getBaseUrl()
) с помощью str_replace
.
Или вы можете использовать $_SERVER['REQUEST_URI']
$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();
}