Использование запятых в URL-адресах может порвать URL-адрес?
Кто-нибудь знает какие-либо проблемы с использованием запятых в SEO-дружественных URL? Я работаю с некоторым программным обеспечением, которое использует много запятых в своих SEO-дружественных URL; но я на 100% уверен, что видел некоторые случаи, когда некоторые программы / платформы неправильно распознают URL и отключают "связывание" URL после первой запятой.
Я только что проверил это с Thunderbird, Gmail, Hotmail и на форуме SMF без проблем; однако я знаю, что видел проблему раньше.
Итак, мой вопрос: есть ли что-то конкретное, что могло бы заставить некоторые платформы перестать связывать URL-адреса запятыми? Например, определенный символ после запятой?
1 ответ
Там будет множество реализаций, которые обрежут автоматическое связывание в этой точке. Как и со многими другими персонажами тоже. Но это не проблема из-за использования этих символов, а из-за неправильной / неполной реализации.
Смотрите, например, этот самый сайт, Переполнение стека. Это будет отрезать ссылку на *
при ручном вводе / вставке этого URL ( см. ошибку; в случае, если она исправлена, вот ее скриншот):
Но при использовании синтаксиса гиперссылки он работает нормально:
*
в пути URL-адреса HTTP разрешен символ, поэтому обнаружение ссылки должно было распознать первый URL-адрес, а не разрывать его при возникновении *
,
Что касается запятой:
Запятая является зарезервированным символом, и ее значение относится к URL- пути (выделено жирным шрифтом):
Помимо точечных сегментов в иерархических путях, сегмент пути считается непрозрачным по общему синтаксису. Приложения, генерирующие URI, часто используют зарезервированные символы, разрешенные в сегменте, для разграничения подкомпонентов, специфичных для схемы или обработчика разыменования. Например, зарезервированные символы точки с запятой (";") и равенства ("=") часто используются для разделения параметров и значений параметров, применимых к этому сегменту. Запятая (",") зарезервированный символ часто используется для аналогичных целей. Например, один производитель URI может использовать сегмент, такой как "name;v=1.1", чтобы указать ссылку на версию 1.1 "name", тогда как другой может использовать сегмент, такой как "name, 1.1", чтобы указать то же самое.
Так что, если вы не собираетесь использовать запятую для функции, которая имеет зарезервированный символ, вы можете захотеть закодировать ее в процентах с помощью %2C
, Пользователи, копирующие такой URL из адресной строки своего браузера, вставляют его в закодированную форму, поэтому он должен работать почти везде.
Однако, особенно из-за того, что это зарезервированный символ, незашифрованная форма тоже должна работать.