Как получить ссылку на текущую страницу при помощи JS и PHP
Привет, друзья. Сегодня поговорим о том, как в JS и PHP получить адрес текущей страницы. Дело в том, что разработчику часто нужно выполнить какой-то код, только на определенных страницах или в зависимости от каких-то GET параметров. Как раз в таких случаях удобно сохранить все данные из адресной строки в объект или строку, чтобы иметь возможность удобно манипулировать своим кодом/разметкой в зависимость от полученных параметров.
Обычно я сталкиваюсь с такими задачами:
- Получение utm-меток, в зависимости от которых мы можем менять контент на странице.
- Определение адреса страниц, на которых стоит подключить какой-то скрипт.
- Получение адреса страницы для передачи ссылки в форму обратной связи, чтобы понимать с какой страницы совершён заказ ( в том числе и передача utm-меток в форму).
Как получить ссылку на текущую страницу в Javascript
Для начала давайте разберемся как справиться с задачей при помощи js. В javascript есть объект Location, который позволяет получить текущий URL страницы. Доступ к нему я обычно произвожу через глобальный объект Window или Document. В итоге Window.location возвращает нам объект со свойствами, в которых и содержится интересующая нас информация. Например, самыми популярными для меня свойствами являются: href, hostname, pathname и search.
Для пример возьмем url:
window.location.href
console.log(window.location.href); // вернёт: https://smartlanding.biz/smartroulette-lp/index.php?utm_source=yandex
Команда возвращает полный адрес страницы, то есть ссылку со всеми параметрами.
window.location.hostname
console.log(window.location.hostname); //вернет smartlanding.biz
Команда возвращает домен текущей страницы.
window.location.pathname
console.log(window.location.pathname); //вернет /smartroulette-lp/index.php
Вернет путь до текущей страницы, исключая домен и параметры. То есть покажет категорию/рубрику/папку, в которой находится страница.
window.location.search
console.log(window.location.search); // Вернет ?utm_source=yandex
Возвращает GET-параметр начиная со знака «?», то есть позволяет получить любые параметры, которые вы передаёте вместе со ссылкой. В том числе и пресловутые UTM-метки.
Как видите, в js есть все, чтобы легко справиться с задачей получения ссылки на текущую страницу. Но это не все возможности, которые дает нам javascript. Также можно получить протокол, порт, домен с портом и хеш из адресной строки. Делается это при помощи следующих свойств: protocol, port, host и hash.
console.log(window.location.protocol); // вернет https: console.log(window.location.port); // вернет номер порта, если он присутствует в адресной строке console.log(window.location.host); // вернёт домен и порт, если он есть console.log(window.location.hash); // вернет хеш страницы, начиная с символа #, например, #testmarker
Как получить ссылку на текущую страницу в PHP
Теперь давайте посмотрим на PHP. На самом деле тут тоже дела обстоят подобным образом. Есть готовый массив $_SERVER , который содержит в том числе и путь к текущей странице.
Как и в прошлый раз покажу на примере адреса:
Полный адрес текущей страницы на PHP
$currentUrl= ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; echo $currentUrl; // Выведет https://smartlanding.biz/smartroulette-lp/index.php?utm_source=yandex
Путь к текущей странице без параметров
$currentUrl = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $currentUrl = explode('?', $currentUrl); $currentUrl = $currentUrl[0]; echo $currentUrl; // Выведет https://smartlanding.biz/smartroulette-lp/index.php
Путь без домена и параметров
$currentUrl = $_SERVER['REQUEST_URI']; $currentUrl = explode('?', $url); $currentUrl = $Url[0]; echo $currentUrl; // Вернет /smartroulette-lp/index.php
Получить только GET-параметры текущей страницы
$currentUrl = $_SERVER['QUERY_STRING']; echo $currentUrl; // Выведет utm_source=yandex
Если остались какие-то вопросы — задавайте в комментариях. Попробуем решить.
05/10/2022 Дмитрий Давыдов
Похожие публикации
- Реферальные хвосты. Как отправить данные из utm меток на почту
- Как получить адрес страницы с которой отправлена форма
- Как самостоятельно и быстро сделать лендинг
Как в PHP получить URL? Получение текущей ссылки в PHP. Переменная $_SERVER
В этой статье будет рассказано о том, как в языке программирования PHP получить адрес текущей страницы. Также вы узнаете о работе переменной $_SERVER.
Первое, о чём следует сказать, — зачем вообще получать ссылки (urls) в PHP? На практике варианты могут различаться. Представьте, что у нас для разных разделов применяется один и тот же шаблон. И возникает потребность в том, чтобы вывести (либо не вывести — зависит от ситуации) какой-нибудь специальный блок, причём в других разделах вывод этого блока не нужен.
В большинстве случаев мы пожелаем выполнить поставленную задачу по условию. То есть сделаем условие, в котором будем выполнять проверку того либо иного раздела. Можно сказать, что с точки зрения архитектуры данное решение не является оптимальным. Но на практике нам нередко достаются уже реализованные проекты, с которыми необходимо что-то решать с учётом уже имеющейся архитектуры.
Но давайте не будем много говорить, а лучше приступим к решению поставленной задачи — получению ссылки в PHP.
Получение ссылки текущей страницы в PHP
Для получения данных нужно обратиться к глобальной переменной в PHP, которая называется $_SERVER. Переменная $_SERVER представляет собой массив, содержащий много полезной информации. На практике $_SERVER может получать любые данные о текущем URL: — доменное имя; — название скрипта; — параметры URL.
По сути, в глобальном массиве $_SERVER хранятся и заголовки, и пути, и местоположения скриптов. Если вас интересует сразу вся информация, хранимая в массиве $_SERVER, воспользуйтесь следующим кодом на PHP. Он выведет всё, что хранится, сделав это в читабельном виде:
'; var_dump($_SERVER); echo ''; ?>
Идём дальше. Представьте, что у вас есть web-страница, имеющая следующий вид: http://localhost/php-lessons/url/?name=anna&city=Valencia. Тестирование в данном примере осуществляется на локальном сервере. Если надо тестировать код на реальном веб-сайте, доступном в интернете, достаточно вместо localhost прописать имя сайта (домен) — тот же otus.ru.
Что же мы увидим в подопытном url? Нас могут интересовать следующие данные: — адрес веб-страницы без GET-параметров; — URL с GET-параметрами; — непосредственно GET-параметры без текущей ссылки (адреса веб-страницы).
Лучше всего разобраться с каждым из случаев по отдельности — так будет гораздо понятнее.
Получение полного URL в PHP
Для получения полного URL вместе с имеющимися GET-параметрами, пригодится следующий код:
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; echo $url;Что здесь что? В первую очередь, осуществляется проверка, какой именно протокол передачи данных задействуется: https или http. В случае, если значение $_SERVER[‘HTTPS’] не является пустым, речь идёт о протоколе https, в обратном случае — http.
На втором этапе выполняется присоединение двоеточия и двух слэшев, имени домена и остальной части URL.
Итог выполнения кода будет следующим:
Если протокол получать не требуется, код на PHP можно немного сократить:
Смотрим на результат и видим, что протокол отсутствует:
Получение URL в PHP без GET-параметров
Иногда эти параметры, передаваемые в качестве части ссылки, нас не интересуют, то есть требуется получить адрес без них. Мы говорим о следующих параметрах: name=anna&city=Valencia.
В действительности их можно отсечь, используя функцию explode в PHP, разбивающую строку по разделителю. Не стоит объяснять, что ссылка представляет собой строку, а параметры GET начинают прописываться после «?». В результате вопросительный знак и станет разделителем, а функция explode сделает из строки массив с 2-мя элементами. Первый элемент станет содержать искомую ссылку без GET-параметров, так как эти самые параметры останутся во втором элементе.
Код на PHP с использованием переменной $_SERVER будет выглядеть так:
Получение только параметров GET
Эта операция тем более не вызывает сложностей. В данном случае код с использованием переменной $_SERVER будет выглядеть следующим образом:
С помощью этого кода получим:
Это всё. Надеемся, что теперь вы знаете, как происходит получение PHP ссылки и как работает глобальная переменная $_SERVER. Если же интересуют более продвинутые знания, записывайтесь на курсы OTUS!
Как получить 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 (та часть, которая идёт после знака решётки # )
URL адрес документа: что это, виды и форматы указателей, советы по созданию
URL (url адрес) — это аббревиатура, которая расшифровывается как Uniform Resource Locator, или «унифицированный указатель ресурса», т.е. адрес сайта размещенного в сети Интернет.
Что такое URL
Изначально унифицированный указатель использовался для того, чтобы показать путь размещения файлов в вебе, а сейчас применяется для обозначения любого интернет-ресурса:
- сайта;
- файла (документу, изображению, аудиозаписи или видео).
Для перехода к искомому файлу или сайту пользователь должен ввести в адресную строку браузера нужный адрес. Если вы введете адрес страницы блога Kokoc.com (https://kokoc.com/blog), откроется следующее окно:

URL — та самая ссылка, которая показывается в адресной строке браузера. Его можно получить, если выделить ссылку (она автоматически выделяется при установке курсора в адресную строку), нажать правую кнопку мыши и выбрать из выпадающего меню пункт «Копировать».
Если вам нужно копировать адрес картинки, нужно нажать на нее правой кнопкой мыши и в выпадающем меню выбрать пункт «Копировать адрес изображения» (как минимум, так он называется в «Яндекс.Браузере»).
Если вам нужно получить адрес файла, снова вызываем выпадающее меню и выбираем пункт «Копировать адрес ссылки».
В каждом описанном случае ссылка копируется в оперативную память компьютера и уже из нее ссылку можно вставить в мессенджер, окно сообщений социальной сети, документ или другой браузер.

Присоединяйтесь к нашему Telegram-каналу!
- Теперь Вы можете читать последние новости из мира интернет-маркетинга в мессенджере Telegram на своём мобильном телефоне.
- Для этого вам необходимо подписаться на наш канал.
Из чего состоит URL-адрес
Начало адреса (1) — это протокол — http или https. В «Яндекс.Браузере» и Google Chrome они по умолчанию не видны и появляются только по клику левой кнопки мыши в адресной строке. Между тем указатель может начинаться не с протоколов передачи гипертекста, а со следующих:
- Ftp. После ввода адреса откроется файловый сервер. Возможно потребуется авторизация, т.е. ввод пользовательского логина и пароля. Я, например, так просматриваю, какие директивы содержит robots.txt того или иного сайта.
- Mailto. В результате ввода адреса будет выполнена команда отправки электронного письма на определенный email. Конечно, лучше всего для этих целей использовать почтовый клиент.
- File. Вы сможете посмотреть в браузере файл с компьютера.
Следующей частью URL является доменное имя сайта (2), реже — его IP.

Читайте также:
Домен: что это такое, определение, примеры, «правильное» имя сайта
Завершает адрес путь к странице (3), где будут папки и подпапки и который содержит название этой страницы.

Кроме того, URL может иметь в своем составе параметры, идущие после знака «?» и разделяющиеся символом «&» (знаки выделены желтым). Так выглядит адрес страницы с результатами поиска в Google по запросу “купить книгу”:
Виды URL
Статический URL
Это неизменный адрес, который остается тем же самым в течение всего времени существования вплоть до момента внесения изменения со стороны вебмастера или владельца сайта. Адрес не несет в своем составе никаких дополнительных параметров:
Динамический URL
Такой указатель формируется в результате пользовательского запроса и имеет в составе разделители типа “&”, “=”, “?”, после которых идут дополнительные параметры конкретной страницы. Они генерируются, когда пользователь интернет-магазина применяет фильтры товаров, сортирует их по рейтингу или цене, ищет по сайту. Если я введу на сайте «Читай-города» название книги «Увеличение продаж с SEO», искомая страница будет иметь адрес:

Продвижение товаров на маркетплейсах
- Оплата по дням нахождения в ТОП
- Средние сроки продвижения - 7 дней!
С позиций поисковой оптимизации лучше использовать статические урлы, потому что у динамических есть ряд объективных минусов:
- очень большая длина, в результате чего они режутся при копировании и не влезают в поисковую строку браузера;
- сложны или вообще невозможны для запоминания и не позволяют понять, что будет отображено на странице после перехода по ссылке;
- более низкий уровень кликабельности;
- в динамических урлах не индексируются ключевые фразы.
Форматы URL
Транслитерированные URL
Так как мы работаем в Рунете, но соблюдаем мировые стандарты, повсеместно используем транслитерацию. Любой человек прочитает такой адрес и поймет, какое содержимое будет у соответствующей страницы.

И «Яндекс», и Google определяют в этих урлах ключевые фразы, а это позитивно влияет на поисковое продвижение. Кроме того, транслитерация структурирует сайт: мы можем легко попасть на главную страницу блога, просто стерев часть с названием статьи.

Читайте также:
Гайд по технической оптимизации сайта
Латинские URL
Латинские урлы — это адреса с переводом на английский язык. Вместо «/работы/» будет «/works/» или «/portfolio/», вместо «/услуги/» — «/services/».
В основном латиница используется, чтобы показывать урлы категорий товаров или рубрик блога. Этот формат указателей без проблем опознается пользователями и хорошо индексируется роботами поисковых систем.
Кириллические URL
Логично, что такие указатели используются в кириллических доменах и в коротких адресах.

Из их плюсов можно выделить:
- простота запоминания (родной язык, в конце концов!);
- большое число свободных адресов, потом что кириллические домены до сих пор остаются не настолько используемыми, как латинские;
- использование в урле ключевых фраз.
Но не все так гладко. У кириллических указателей есть большой минус. Когда вы копируете такой адрес, чтобы вставить его в окно текстового редактора или мессенджера, получится следующее (та же статья про Гоголя):
https://ru.wikipedia.org/wiki/%D0%93%D0%BE%D0%B3%D0%BE%D0%BB%D1%8C,_ %D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_ %D0%92%D0%B0%D1%81%D0%B8%D0%BB%D1%8C%D0%B5%D0%B2%D0%B8%D1%87
Увы, но запись URL-адресов содержит фиксированный набор символов, куда кириллические не включены. В связи с этим все кириллические адреса шифруются, но ссылка остается работоспособной.
Также из недостатков таких урлов можно назвать трудность понимания и запоминания со стороны зарубежных пользователей. Реально, какой иностранец с первого раза прочитает и выговорит «Васильевич»! Кириллические также тяжело воспринимаются роботами поисковых систем, и их обязательно нужно переводить в удобочитаемый вид.

Читайте также:
Что такое контент простыми словами
Человекопонятные URL (ЧПУ)
В рекомендациях Google и «Яндекса» есть указание на то, что на сайтах нужно использовать понятные для пользователей адреса, чтобы и люди, и машины понимали, что содержит в себе та или иная страница.
Например, по адресу https://site.ru/viewpage.php?category_id=13 мало что понятно, зато https://site.ru/portfolio сразу же говорит нам о том, что на странице находятся примеры работ компании или частного специалиста.
Пользователи могут оценить контент страницы еще ДО перехода по ссылке, а также:
- скопировать и отправить адрес заинтересованным лицам — и письменно, и устно;
- подобные указатели легко «насытить» ключевыми фразами;
- ЧПУ без проблем запоминаются и ассоциируются с понятными объектами, явлениями или предметами;
- дают ускоренную навигацию по сайту. Пользователь может вручную удалить часть адреса и оказаться в нужном разделе. В итоге разгружается поиск по сайту.
Есть ряд правил построения ЧПУ на своем сайте:

- Применять транслитерацию по согласованному заранее принципу.
- Заменять все пробелы и пунктуационные знаки на дефисы или же нижний прочерк. Если такие символы сдвоены — делать вместо них один.
- Убирать в начале и конце урда символ «-».
- Писать только строчными буквами.
- По возможности делать короткие урлы, чтобы потом не пришлось использовать программы-сокращаторы ссылок.
Как сделать хороший URL
- В корректном указателе в обязательном порядке должны присутствовать ключевые слова, потому что это один из факторов ранжирования поисковых систем. Но если же перенасытить ими адрес, это будет расценено не иначе как спам, и сайт может потерять позиции в выдаче.
- Настраивать короткие урлы длиной максимум в 4–5 слов и максимальной длиной в 80 символов, чтобы в SERP показался адрес полностью, без обрезки в самом нужном месте.
- Вложенность конкретной страницы или раздела сайта будет прямо пропорционально длине урла. В связи с этим порой приходится исключать из урла названия рубрик блога или категорий.
- Легче продвигать латинские домены, чем кириллические, поэтому лучше сразу же настраивать латинские урлы.
- Слова в урле лучше разделять не нижним подчеркиванием, а дефисом.
- Чтобы исключить дублирование страниц, необходимо настроить 301-й редирект.
И конечно же, нужно всегда настраивать ЧПУ, потому что вы делаете сайты прежде всего для людей — ваших подписчиков, читателей, покупателей и даже почитателей таланта.

Создание сайтов
- Разработка эффективных сайтов для продаж в интернете.
- Создаем сайты с нуля любой сложности, от сайтов визиток до интернет-магазинов и крупных порталов.






