Как получить урл


Как получить урл

Как получить урл

Как получить урл



Обновлено: 28 июля 2017

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Сегодня хочу затронуть тему формирования уникальных URL адресов в интернете и рассказать про принципы создания относительных и абсолютных ссылок. Конечно же, тема формирования Урлов или их более расширенной версии URI (ури) довольно сложна, если копать глубоко и пытаться добраться до истины.

Но нам этого и не нужно, ибо достаточно понимать структуру URL в ее прикладном применении. Ну и также, я думаю, будет полезно понимать, для чего и как можно создавать относительные ссылки для своего ресурса, а не использовать для этих целей абсолютные, когда в этом нет явной необходимости.

Что такое URL адреса, нюансы индексации сайта

Итак, давайте посмотрим что такое URL, зачем он нужен и из каких частей состоит. Как вы знаете, поисковые системы производят ни как единого целого, а как совокупность отдельных страниц. Они потом будут по различным поисковым запросам (читайте подробнее о подборе ключевых слов в Вордстате на основе .

Ну так вот, любой документ (вебстраница) в сети интернет имеет свой уникальный адрес, который очень часто называют аббревиатурой Урл, расшифровывающейся как Uniform Resource Locator (определитель местонахождения ресурса). Он, равно как и протокол HTTP, а еще и как , был разработан и создан одним и тем же человеком — Тимом Бернерсом-Ли (отцом основателем проекта ).

По большому счету URL является частным случаем другого идентификатора под названием URI (Uniform Resource Identifier — унифицированный идентификатор ресурса), но нам с вами все эти тонкости, скорее всего, будут не нужны (излишни) при работе со своим сайтом. Давайте попробуем в общих чертах разобраться с тем, что это такое и из каких частей он состоит, а потом перейдем к относительным и абсолютным ссылкам.

URL адрес — это способ однозначно указать на что-то в интернете. Он используется не только для работы с сайтами () по протоколу http, но нас, конечно же, будет интересовать именно применение этого идентификатора к Web (протоколы http и https). Урл в этом случае будет выглядеть примерно так (чуть ниже я приведу общую блок-схему его построения, но пока хотелось бы начать с простого частого примера):

http://ktonanovenkogo.ru/papka/fail.html

В этом примере URL часть «http» обозначает протокол передачи данных или же, если следовать терминологии спецификации, схему (ибо тот же не является протоколом передачи данных, в отличии от http или ftp, но используется в Урл адресах). Далее в приведенном примере следует «ktonanovenkogo.ru» (или же это может быть «www.ktonanovenkogo.ru») — или же .

В Web-е есть специфика обозначения доменного имени в URL адресе сайта, которое может быть с WWW или без WWW. Для того, чтобы успешно можно было , очень важно склеить эти два зеркала вашего сайта . Зачастую, склейку зеркал за вас может выполнить хостер, но это обязательно нужно будет проверить.

Т.е. для поисковиков сайты с WWW или без оного являются абсолютно разными и без их склейки, ссылочная масса будет делиться между ними в неизвестной вам пропорции. WWW в адресе по своей сути — это некий атавизм, который делает ваше доменное имя второго уровня доменом третьего.

Ничего плохого в использовании WWW в URL сайта нет, но нужно четко определить главное зеркало (через и через , а также через прописывание директивы вашего сайта), которое будет индексироваться поисковиками и которое будет участвовать в ранжировании.

У меня, например, главное зеркало — это «ktonanovenkogo.ru», т.е. «без атавизма», и если вы добавите к любому моему Урлу эту чудо-приставку, то произойдет автоматическое перенаправление на адрес «без WWW».

http://www.ktonanovenkogo.ru/papka/fail.html

Склеить можно не только описанные выше зеркала, но и любые другие доменные имена, принадлежащие вам. Например, если возможно различное написание латинскими буквами какого-либо известного бренда, то покупаются все возможные домены (варианты написания с ошибками, в разных доменных зонах и т.п.) и склеиваются между собой. Тогда, при обращении к сайту по любому из возможных URL адресов, будет открываться главное зеркало.

Но вернемся к нашим баранам. Та часть URL, которая расположена за третьим слешем (/) — в нашем примере это «papka/fail.html» — называется путем до конкретного объекта (документа или файла). В нашем случае это документ «fail.html», который лежит в каталоге «papka», который в свою очередь лежит в корневой папке (корень в Урле всегда соответствует третьему слешу слева).

Но это еще не все, что может быть записано в адресе. Посредством URL различные передают так называемые GET параметры, которые добавляются в самый его конец после простановки знака вопроса, например, так:

http://www.ktonanovenkogo.ru/papka/fail.html?print=yes

Вся беда в том, что для поисковых систем два таких URL адреса (с и без Get параметров) являются абсолютно разными веб документами и каждый из них будет проиндексирован поисковиками. К одному и тому же Урлу может добавляться вашей Cms сколько угодно много различных Get параметров и все это будет проиндексировано Яндексом и Гуглом, если вы не создадите соответствующие запреты в файле robots.txt, ссылка на статью про который приведена чуть выше.

В противном случае поисковики вас могут за большое количество дублированного контента.

Также, например, к главной странице моего ресурса можно обратиться по двум разным Урлам:

http://ktonanovenkogo.ru http://ktonanovenkogo.ru/index.php

(даже по трем — еще и http://ktonanovenkogo.ru/) и в любом случае откроется главная страница. Это довольно плохо, т.к. поисковики найдут у меня три разных страницы (имеющих с их точки зрения разные URL адреса), но с одинаковым содержанием, что им, ох как не нравится.

Поэтому у меня сделано так, что при вводе любого из приведенных чуть выше Урлов будет выполнено перенаправление на URL вида «http://ktonanovenkogo.ru/». Делается это, как правило, с помощью 301 редиректа в файле .htaccess, либо напрямую в настройках сервера вами самими, либо вашим хостером.

Структура Урл адреса и перекодировка в URL-encoded

Вообще, полную блок-схему URL адреса можно представить так:

В реальности, как правило, не используют логин, пароль и порт, хотя для доступа на платные сайты может понадобиться их указание:

http://login:/platniy-dostup.html

Также довольно часто используются пароли для входа на Ftp сервер, где так же может использовать не стандартный порт, отличный от используемого по умолчанию для этого протокола. Тогда для доступа к ресурсам такого Ftp сервера потребуется вводить подобный URL:

ftp://login::6789/samoe-nujnoe/cimus

Про GET параметры, которые могут прописываться в этом адресе после знака вопроса, мы уже говорили и упоминали, что следует обязательно запрещать к индексации страницы, в Урлах которых имеются подобные параметры (выше приведена ссылка на статью про роботс, где все это подробно расписано).

Но кроме всех этих вещей, которые могут входить в состав URL, на приведенной чуть выше блок-схеме вы можете видеть так называемый якорь, который добавляется в самом конце после разделяющего символа решетки «#» (Урлы, содержащие якоря, обычно называют хеш ссылками).

Якоря заранее проставляются внутри Html кода документа (страницы), а затем, добавив название этого якоря к URL адресу страницы через символ решетки «#», вы сможете перейти не на начало этой вебстраницы, а сразу к тому месту, где был проставлен якорь (все автоматически прокрутят страницу до нужного места).

Про , и в том числе про организацию навигации на странице с помощью , читайте в этих статьях.

Еще стоит сказать о различных кодировках, которые используются в URL адресах. Без перекодирования в них можно использовать только ограниченное количество символов. Обычно советуют ограничиться набором из символов: [0-9],[a-z],[A-Z],[_],[-].

Вообще, во избежании ошибок, я бы советовал задавать название файлов и Урлов страниц своего сайта в нижнем регистре, ибо для юникс подобных систем (на которых работает большинство веб серверов) символы в верхнем и нижнем регистре являются разными (в отличии от Windows). Из-за разных регистров может возникнуть никому не нужная путаница.

Использование каких-либо других символов (включая русские) в урлах допустимо, но при этом будет происходить перекодировка этих самых символов (URL Encoding).

Что опечаливает, так это неудобоваримый вид URL адресов с символами, например, кириллицы, которые получаются после перекодировки. Каждый символ кириллицы кодируется с помощью двух байт в , записанных в шестнадцатеричном виде и разделенных знаком процента «%». Например, такой Урл:

http://ktonanovenkogo.ru/кто на новенького/

после перекодировки станет таким:

http//ktonanovenkogo.ru/%BA%D1%82%D0%BE%20%D0%BD%D0% B0%20%D0%BD%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C%D0%BA%D0 %BE%D0%B3%D0%BE

В общем, получается не очень здорово и с этим неудобоваримым видом URL на национальных кодировках планируют разбираться и бороться, но движется это дело не ахти как быстро. В связи со всем вышесказанным я бы советовал при использовании ЧПУ на своих CMS () не делать адреса страниц на русском, а , тем более, что по мнению многих продвиженцев так будет лучше в плане Seo оптимизации под Яндекс и Google.ru.

Относительные и абсолютные ссылки на сайте

Давайте начнем с абсолютных ссылок, т.к. в этом случае ничего особенного, сверх того, что мы уже обсудили в данной статье, говорить и не придется. Т.о. она должна соответствовать тем требованиям, которые мы предъявляем к URL адресу — должен указываться протокол передачи данных, доменное имя сайта (хоста) и путь до нужного web документа. Все.

Но т.к. абсолютная ссылка в Html формируется с помощью специальных тегов, то мы просто должны будем вставить конструкцию элементов гиперссылки в нужное место документа и прописать в ее атрибуте Href адрес того веб документа (абсолютный путь), на который должен будет попасть посетитель при переходе по ней:

<a href="http://ktonanovenkogo.ru/vokrug-da-okolo/programs/phpmyadmin-skachat-ustanovka-nastrojka.html">ПхпМайАдмин</a>

Все очень просто, но абсолютные гиперссылки обычно используют только в тех случаях, когда хотят сослаться на внешние сайты, а для внутренних переходов большинство вебмастеров стараются использовать относительные ссылки. Они получаются более короткими и не загромождают, не утяжеляют код сайта.

К тому же, некоторые конструкции интернет проекта можно будет очень быстро и безболезненно перенести на другой ресурс, не изменяя при этом внутренние относительные ссылки.

Итак, если судить по названию, то адрес web документа, на который они ссылаются, должен быть прописан относительно того документа вашего сайта, из кода которого и будет проставлена данная относительная ссылка (пляшем от печки). Второй вариант их простановки заключается в использования в качестве точки отсчета корневой папки. Вот именно эти два способа создания относительных ссылок мы сейчас и рассмотрим.

Самый простой и короткий вариант записи относительного пути (имеется в виду значения атрибута Href тега гиперссылки) получится в том случае, когда оба web документа: донор (с которого она проставляется) и акцептор (файл или web документ, на который она ведет), находятся в одной папке на сервере.

Тогда относительная ссылка будет представлять из себя лишь название web документа акцептора:

<a href="akceptor.html">анкор</a>

Теперь давайте предположим, что документ акцептор лежит в папке, которая расположена в одной директории с документом донором.

Как в этом случае будет выглядеть относительная ссылка? Все тоже довольно просто:

<a href="papka/akceptor.html">анкор</a>

Пока, думаю, что все понятно — прописываем путь до файла или документа акцептора (название папки, а через прямой слеш «/» имя файла или документа). Т.е. нам для того, чтобы попасть от донора к акцептору, нужно будет открыть папку, название которой мы и указываем в относительной ссылке.

Теперь давайте рассмотрим противоположную ситуацию, когда внутри папки лежит сам документ донор, с которого нужно проставить относительную ссылку на документ или файл акцептор, который уже лежит на уровень выше:

Для того, чтобы нам от документа донора пройти к файлу (или документу) акцептору, потребуется подняться из этой папки на уровень выше. Для этого предусмотрен специальный элемент — две точки подряд, а затем через прямой слеш прописывается дальнейший путь к акцептору. Поэтому для приведенного выше примера относительный путь будет иметь вид:

<a href="../akceptor.html">Что такое URL адреса</a>

Если вам понадобится подняться на два уровня вверх, то запись будет иметь вид:

<a href="../../akceptor.html">Что такое Урл</a>

Ну, а если после этого для прописывания пути до акцептора вам нужно будет еще войти в какую-либо папку на втором верхнем (относительно документа донора) уровне:

Тогда относительная ссылка, проставленная из Html кода документа донора, может иметь следующий вид:

<a href="../../primer-2/akceptor.html">Сложная конструкция пути</a>

Таких спусков в папки и подъемов на уровень вверх может быть сколь угодно много, главное, чтобы вы сами не запутались.

Все рассмотренные выше ссылки мы писали относительно того документа донора, с которого проставляется гиперссылка, но можно в качестве точки отсчета взять корневую папку сайта. Корень в обозначении относительных путей выглядит как одиночный прямой слеш «/».

Т.о. переход на главную страницу будет выглядеть довольно просто, но экстравагантно:

<a href="/">анкор</a>

Любую гиперссылку, относительно корня сайта, можно представить как абсолютную, но с убранной частью стоящей слева от третьего слеша. Например, абсолютный путь может выглядеть так:

<a href="http://ktonanovenkogo.ru/wp-content/uploads/html-tegi.html">анкор</a>

А относительный до того же самого файла будет уже несколько короче:

<a href="/wp-content/uploads/html-tegi.html">Текст</a>

Как сослаться на папку в относительном и абсолютном виде

Хочу обратить ваше внимание на один нюанс, который стоит учитывать при создании как абсолютных, так и относительных ссылок. Если вы хотите сослаться на папку, то обязательно ставьте в конце такой гиперссылки (после ее названия) прямой слеш «/». Т.е., если я хочу открыть содержимое папки, то мне следует написать:

<a href="/wp-content/uploads/">анкор</a>

А не такую:

<a href="/wp-content/uploads">текст</a>

Во втором случае, при обработке, сервер будет сначала пытаться найти файл с именем «uploads» (именно такой без каких-либо расширений) и не найдя его уже потом будет искать такую папку. Поэтому, написав сразу же слеш после названия нужной вам папки, вы не будете отнимать лишние ресурсы у вашего сервера на поиски того, чего там нет.

Также следует знать, что при обращении в относительной или абсолютной ссылке к папке, веб сервер отобразит так называемый индексный файл, который лежит в ней и который, как правило, называется либо index.html, либо index.php. Если индексного файла в папке не будет, то при неправильно настроенной на сервере безопасности вы увидите листинг ее содержимого, что может привести к снижению безопасности вашего ресурса.

Обязательно , если обнаружите.

Кстати, обращение к главной странице сайта тоже по своей сути есть обращение к папке (корневой), и при этом будет запущен индексный файл лежащий в корне (в моем случае это index.php). Так вот, если вы обращаетесь к папке, то для снижения нагрузки на сервер лучше прописывать после доменного имени прямой слеш:

<a href="http://ktonanovenkogo.ru/">Абсолютная ссылка на главную</a>

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Подборки по теме:


Источник: http://ktonanovenkogo.ru/vokrug-da-okolo/chto-takoe-url-adresa-url-uri-absolyutnye-i-otnositelnye-ssylki.html



Как получить урл фото



Как получить урл

Как получить урл

Как получить урл

Как получить урл

Как получить урл

Как получить урл

Как получить урл

Как получить урл

Как получить урл