Получит текущий url при помощи PHP
Частенько появляется нужна в том, чтобы получить текущую страницу в какой нибудь CMS или на голом PHP. В коде, приведённом внизу, подробно расписано, как легко и просто получить полный URL текущей страницы при помощи PHP.
Поддержать проект
Для связи
Если у вас появились какие-либо вопросы, хотите получить индивидуальный совет или у вас есть интересное предложение, вы можете связаться через форму обратной связи.
Или написать прямо на почту info@bobreod.ru
Beaver Stock
Ресурс, на котором вы можете найти что-то полезное для себя, или использовать инструменты, которые смогут облегчить процесс вашей web разработки.
Как получить полный url php
Хелпер Url предоставляет набор статических методов для управления URL.
Получение общих URL ¶
Вы можете использовать два метода получения общих URL: домашний URL (Home) и базовый URL (Base) текущего запроса. Используйте следующий код, чтобы получить домашний URL:
$relativeHomeUrl = Url::home(); $absoluteHomeUrl = Url::home(true); $httpsAbsoluteHomeUrl = Url::home('https');
Если вы не передали параметров, то получите относительный URL. Вы можете передать true , чтобы получить абсолютный URL для текущего протокола или явно указать протокол ( https , http ).
Чтобы получить базовый URL текущего запроса:
$relativeBaseUrl = Url::base(); $absoluteBaseUrl = Url::base(true); $httpsAbsoluteBaseUrl = Url::base('https');
Единственный параметр данного метода работает так же как и Url::home() .
Создание URL ¶
Чтобы создать URL для соответствующего роута, используйте метод Url::toRoute() . Метод использует yii\web\UrlManager. Для того чтобы создать URL:
$url = Url::toRoute(['product/view', 'id' => 42]);
Вы можете задать роут строкой, например, site/index . А также вы можете использовать массив, если хотите задать дополнительные параметры запроса для URL. Формат массива должен быть следующим:
// сгенерирует: /index.php?r=site/index¶m1=value1¶m2=value2 ['site/index', 'param1' => 'value1', 'param2' => 'value2']
Если вы хотите создать URL с якорем, то вы можете использовать параметр массива с ключом # . Например:
// сгенерирует: /index.php?r=site/index¶m1=value1#name ['site/index', 'param1' => 'value1', '#' => 'name']
Роут может быть и абсолютным, и относительным. Абсолютный URL начинается со слеша (например, /site/index ), относительный — без (например, site/index or index ). Относительный URL будет сконвертирован в абсолютный по следующим правилам:
- Если роут пустая строка, то будет использовано текущее значение route;
- Если роут не содержит слешей (например, index ), то он будет считаться экшеном текущего контроллера и будет определен с помощью yii\web\Controller::$uniqueId;
- Если роут начинается не со слеша (например, site/index ), то он будет считаться относительным роутом текущего модуля и будет определен с помощью uniqueId.
Начиная с версии 2.0.2, вы можете задавать роуты с помощью псевдонимов. В этом случае сначала псевдоним будет сконвертирован в соответствующий роут, который будет преобразован в абсолютный в соответствии с вышеописанными правилами.
Примеры использования метода:
// /index.php?r=site/index echo Url::toRoute('site/index'); // /index.php?r=site/index&src=ref1#name echo Url::toRoute(['site/index', 'src' => 'ref1', '#' => 'name']); // /index.php?r=post/edit&id=100 псевдоним "@postEdit" задан как "post/edit" echo Url::toRoute(['@postEdit', 'id' => 100]); // https://www.example.com/index.php?r=site/index echo Url::toRoute('site/index', true); // https://www.example.com/index.php?r=site/index echo Url::toRoute('site/index', 'https');
Другой метод Url::to() очень похож на toRoute() . Единственное отличие: входным параметром должен быть массив. Если будет передана строка, то она будет воспринята как URL.
Первый аргумент может быть:
- массивом: будет вызван toRoute() , чтобы сгенерировать URL. Например: [‘site/index’] , [‘post/index’, ‘page’ => 2] . В разделе toRoute() подробно описано как задавать роут;
- Строка, начинающаяся с @ , будет обработана как псевдоним. Будет возвращено соответствующее значение псевдонима;
- Пустая строка: вернет текущий URL;
- Обычная строка: вернет строку без изменений.
Когда у метода задан второй параметр $scheme (строка или true ), то сгенерированный URL будет с протоколом (полученным из yii\web\UrlManager::$hostInfo). Если в $url указан протокол, то его значение будет заменено.
// /index.php?r=site/index echo Url::to(['site/index']); // /index.php?r=site/index&src=ref1#name echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name']); // /index.php?r=post/edit&id=100 псевдоним "@postEdit" задан как "post/edit" echo Url::to(['@postEdit', 'id' => 100]); // Текущий URL echo Url::to(); // /images/logo.gif echo Url::to('@web/images/logo.gif'); // images/logo.gif echo Url::to('images/logo.gif'); // https://www.example.com/images/logo.gif echo Url::to('@web/images/logo.gif', true); // https://www.example.com/images/logo.gif echo Url::to('@web/images/logo.gif', 'https');
Начиная с версии 2.0.3, вы можете использовать yii\helpers\Url::current(), чтобы создавать URL на основе текущего запрошенного роута и его GET-параметров. Вы можете изменить, удалить или добавить новые GET-параметры, передав в метод параметр $params . Например:
// предположим $_GET = ['id' => 123, 'src' => 'google'], а текущий роут "post/view" // /index.php?r=post/view&id=123&src=google echo Url::current(); // /index.php?r=post/view&id=123 echo Url::current(['src' => null]); // /index.php?r=post/view&id=100&src=google echo Url::current(['id' => 100]);
Запоминание URL ¶
Существуют задачи, когда вам необходимо запомнить URL и потом использовать его в процессе одного или нескольких последовательных запросов. Это может быть достигнуто следующим образом:
// Запомнить текущий URL Url::remember(); // Запомнить определенный URL. Входные параметры смотрите на примере Url::to(). Url::remember(['product/view', 'id' => 42]); // Запомнить URL под определенным именем Url::remember(['product/view', 'id' => 42], 'product');
В следующем запросе мы можем получить сохраненный URL следующим образом:
$url = Url::previous(); $productUrl = Url::previous('product');
Проверить относительность URL ¶
Чтобы проверить относительный URL или нет (например, если в нем не содержится информации о хосте), вы можете использовать следующий код:
$isRelative = Url::isRelative('test/it');
Document.referrer: получить URL предыдущей страницы (та, с которой пришёл посетитель) | JavaScript
Браузер сообщает сайту с какой страницы пришёл посетитель. В Mozilla Firefox можно на пустом месте нажать правую клавишу мышки и вывести информацию о странице. В появившемся окне нужно обратить внимание на поле «Ссылающийся URL». Эти данные передаются и в PHP, и в JS.
Как узнать адрес страницы, откуда пришёл посетитель на JS
Как получить сайт, с которого пришёл посетитель
Как узнать адрес страницы, откуда пришёл посетитель на PHP
echo isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
Почему Referrer отсутствует
- ввел адрес в строку браузера самостоятельно,
- открыл страницу из закладок браузера,
- перешёл по текстовой неактивной ссылке,
- перешёл по странице, на которой указан мена-тег referrer со значением none или never ,
- перешёл со страницы HTTPS, на которой не указан мена-тег referrer , на страницу HTTP:
Другими словами, полагаться на Referrer нельзя. Но при сборе статистических сведений с какой страницы стороннего сайта пришёл посетитель ему нет альтернативы.
Как изменить Referrer
Мета-тег Referrer (важно для HTTPS)
Можно управлять передачей Referrer с помощью мета-тега [w3.org]
- рекламодателю перейти на протокол HTTPS (сложно),
- использовать UTM-метки (надёжно),
- установить на сайте HTTPS мета-тег Referrer (просто).
Атрибут noreferrer
Можно передавать Referrer по всем ссылкам, кроме тех, где указан атрибут noreferrer :
Свойства объекта document.referrer
Чем заменить Referer
if($_SERVER['HTTP_ORIGIN'] == "http://shpargalkablog.ru") <>
При сборе адресов своего сайта, лучше в параметрах передавать window.location: пример
Как получить url страницы js
Можно заметить, также, что изменение свойства href в объекте window.location приведет к переходу по новой указанный ссылке.
// Перейдем на страницу личного кабинета window.location.href = 'https://ru.hexlet.io/my/';
29 июня 2022
Чтобы получить url страницы, можно воспользоваться глобальным объектом window.location . Этот объект содержит свойство href , которое содержит адрес текущей страницы.
const currentUrl = window.location.href; console.log(currentUrl); // => https://ru.hexlet.io/qna
Некоторые другие свойства объекта window.location :
- href — весь URL
- protocol — протокол URL
- host — имя хоста и порт URL
- hostname — имя хоста URL
- port — номер порта
- pathname — путь в URL (та часть, которая идёт после первого слэша / )
- search — часть запроса URL (та часть, которая идёт после знака вопроса ? )
- hash — часть URL (та часть, которая идёт после знака решётки # )
