Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Справочник

Плюс, амперсанд и решётка: служебные символы адреса

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

Список зарезервированных символов

СимволРоль в адресе
?Начинает блок параметров запроса
&Разделяет пары параметров между собой
=Разделяет ключ параметра и его значение
#Начинает якорь — ссылку на часть страницы
/Разделяет сегменты пути
+В параметрах запроса означает пробел
:Отделяет протокол и обозначает порт

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

Что происходит, если такой символ есть в исходном тексте

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

Название: Диван "3+2" с реклайнером
Плохо (буквально): divan-3+2-s-reklajnerom  (плюс может быть принят за пробел или спецсимвол)
Хорошо: divan-3-2-s-reklajnerom  (символ заменён обычным разделителем)

Общее правило то же, что для любых посторонних символов, разобранное в справочнике по таблице транслитерации: всё, что не входит в латиницу и цифры, заменяется на разделитель адреса, и служебные символы не исключение.

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

Особая роль знака вопроса

Первый знак вопроса в адресе имеет уникальное значение — он отделяет путь от параметров запроса, и всё, что находится после него, воспринимается системой уже не как часть пути, а как набор пар «ключ-значение».

site.ru/catalog/divany/?sort=price&color=gray
              путь         │  параметры запроса
                     первый ? — граница

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

Решётка и её единственная роль

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

Именно поэтому решётка не может встречаться в самом пути адреса просто как символ — любое её появление будет ошибочно воспринято как начало якоря, обрезав фактически передаваемый на сервер адрес раньше времени.

Слэш как разделитель, а не буква

Слэш имеет структурное значение разделения сегментов пути, и его случайное появление внутри слова — например, в артикуле вида A4/B, разобранном в статье про технические обозначения и артикулы — создаёт видимость дополнительного уровня вложенности там, где его на самом деле нет.

Артикул с внутренним слэшем: A4/B-15
Ошибка при буквальной передаче: /catalog/a4/b-15/  (появился лишний уровень пути)
Верно: /catalog/a4b15/  (слэш убран или заменён иначе)

Чек-лист

  1. Знать список зарезервированных символов и не пропускать их в путь адреса без обработки.
  2. Служебные символы, случайно встретившиеся в исходном тексте, заменяются обычным разделителем, а не кодируются напрямую.
  3. Помнить, что первый знак вопроса всегда отделяет путь от параметров.
  4. Решётка не должна встречаться в самом пути — она всегда означает начало якоря.
  5. Слэш внутри технических обозначений не передавать буквально — он создаёт ложный уровень вложенности.

Двоеточие: протокол и порт

Двоеточие в адресе встречается дважды: сразу после протокола (https://) и перед номером порта, если он указан явно (site.ru:8080). В обычном пути страницы двоеточие не используется, и его случайное появление в тексте заголовка обрабатывается как любой другой посторонний символ — заменяется разделителем.

Сам символ процента как часть текста

Отдельный интересный случай — сам знак процента, встречающийся в обычном тексте, например «скидка 50%». Поскольку процент используется как служебный символ в кодировке остальных зарезервированных знаков, его прямое появление в адресе тоже требует замены на разделитель — иначе он может быть неверно интерпретирован как начало кода другого символа.

Частые вопросы

Почему нельзя просто оставить амперсанд или вопросительный знак в адресе как есть?

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

Что происходит с частью адреса после первого знака вопроса?

Она перестаёт быть путём и становится блоком параметров запроса — набором пар «ключ-значение», разделённых амперсандом. Это уже не тот текст, который оптимизируют для читаемости ЧПУ.

Можно ли использовать решётку внутри адреса раздела каталога?

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

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также