Безопасные символы для дружественного [закрытого] URL

Я нашел что-то в журналах elasticsearch:

Caused by: org.apache.lucene.search.BooleanQuery$TooManyClauses: maxClauseCount is set to 1024

Возможно, нужно отредактировать значение elasticsearch.yml

155
задан Alex Shesterov 9 March 2015 в 10:55
поделиться

7 ответов

Заключить разделу в кавычки 2.3 из RFC 3986:

"Символы, которые позволяются в URI, но не имеют зарезервированной цели, называют незарезервированными. Они включают прописные и строчные буквы, десятичные цифры, дефис, точка, подчеркивает, и тильда".

ALPHA  DIGIT  "-" / "." / "_" / "~"

Обратите внимание, что RFC 3986 перечисляет меньше зарезервированных знаков пунктуации, чем более старый RFC 2396.

193
ответ дан SaidbakR 23 November 2019 в 21:53
поделиться

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

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

  1. Строчные буквы (преобразовывают верхний регистр для понижения),
  2. Числа, 0 до 9
  3. Тире - или подчеркивание _
  4. Тильда ~

Все остальное имеет потенциально особое значение. Например, можно думать, что можно использовать +, но это может быть заменено пространством. И опасно также особенно, если использование некоторых переписывает правила.

Как с другими комментариями, проверьте стандарты и спецификации для полных деталей.

40
ответ дан mklement0 23 November 2019 в 21:53
поделиться

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

  1. Преобразуйте в нижний регистр
  2. Преобразуйте все последовательности символов кроме a-z и 0-9 к одному дефису (-) (не символы нижнего подчеркивания)
  3. Удалите 'стоп-слова' из URL, т.е. not-meaningfully-indexable слова как, и; Google 'стоп-слова' для обширных списков

Так, как пример, статья, названная "Использование! $ %* для Представления Приведения к присяге Комиксов" получил бы краткий заголовок "usage-represent-swearing-comics".

11
ответ дан chaos 23 November 2019 в 21:53
поделиться

Существует два набора символов, которые необходимо не упустить: зарезервированный и небезопасный.

Зарезервированные символы:

  • амперсанд (" и ")
  • доллар (" $ ")
  • знак "плюс" (" + ")
  • запятая ("")
  • наклонная черта вправо (" / ")
  • двоеточие (": ")
  • точка с запятой ("";)
  • равняется (" = ")
  • вопросительный знак ("?")
  • 'В' символе (" ")
  • фунт (" # ").

Символы, которые обычно рассматривают небезопасными:

  • пространство (" ")
  • меньше, чем и больше, чем (" <>")
  • открытые и закрывающие квадратные скобки (" []")
  • откройтесь и близко заключает в фигурные скобки (" {} ")
  • канал (" | ")
  • обратная косая черта (" \")
  • каре (" ^ ")
  • процент (" % ")

Я, возможно, забыл один или несколько, который приводит ко мне повторяющий ответ V Carl. В конечном счете Вы - вероятно, более обеспеченное использование "белого списка" допустимых символов и затем кодирования строки вместо того, чтобы пытаться идти в ногу с символами, которые запрещены серверами и системами.

101
ответ дан Gary.Ray 23 November 2019 в 21:53
поделиться

Формат для URI определяется в RFC 3986. Посмотрите раздел 3.3 для деталей.

6
ответ дан joschi 23 November 2019 в 21:53
поделиться

С точки зрения SEO дефисы предпочтены по символам нижнего подчеркивания. Преобразуйте в нижний регистр, удалите все апострофы, затем замените все неалфавитно-цифровые строки символов с единственным дефисом. Обрежьте избыточные дефисы от запуска и конца.

6
ответ дан mpen 23 November 2019 в 21:53
поделиться

Я думаю, что Вы ищете что-то как "Кодирование URL" - кодирование URL так, чтобы было "безопасно" использовать в сети:

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

http://www.w3schools.com/TAGS/ref_urlencode.asp

0
ответ дан Andy White 23 November 2019 в 21:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: