Должен ли URL быть чувствительным к регистру?

Я заметил, что

HTTP://STACKOVERFLOW.COM/QUESTIONS/ASK

а также

http://stackoverflow.com/questions/ask

оба работают нормально - фактически предыдущий преобразуется в нижний регистр.

Я думаю, что это имеет смысл для пользователя.

Если я посмотрю на Google, то этот URL работает нормально:

http://www.google.com/intl/en/about/corporate/index.html  

а вот этот с "О НАС" не работает:

http://www.google.com/intl/en/ABOUT/corporate/index.html   

Должен ли URL быть чувствительным к регистру?


person Imageree    schedule 03.11.2011    source источник
comment
IMHO, URL-адрес никогда не должен быть чувствительным к регистру, это только усложняет жизнь людям, которые будут его использовать.   -  person Muhammad Umer    schedule 29.10.2016
comment
Вопрос ДОЛЖНЫ ли URL-адреса быть чувствительными к регистру? это плохой вопрос, потому что он вызывает мнение. Скорее, лучше спросить, ПОЧЕМУ (или ПОЧЕМУ нет) URL-адреса чувствительны к регистру? Или Почему некоторые URL-адреса чувствительны к регистру, а другие нет?   -  person chharvey    schedule 20.01.2018
comment
Но для одного возможного ответа ознакомьтесь с принятым новым стандартом URL-адресов WHATWG Автор node.js.   -  person chharvey    schedule 20.01.2018
comment
на мой взгляд, нет, они не должны быть   -  person Andrew    schedule 09.03.2018
comment
если браузер не соблюдает регистр, адрес ipfs будет сломан, но не сломан   -  person Beeno Tung    schedule 08.07.2019


Ответы (17)


Согласно W3 "HTML и URL-адреса" они должны:

Могут быть URL-адреса или части URL-адресов, где регистр не имеет значения, но определить их может быть непросто. Пользователи всегда должны учитывать, что URL-адреса чувствительны к регистру.

person jldupont    schedule 03.11.2011
comment
Я полагаю, что я должен быть либеральным в том, что вы принимаете, и консервативным в том, что вы отправляете (как говорят в IETF). - person jldupont; 04.11.2011
comment
Рекомендация W3 разумна. Он просто заявляет, что не следует делать предположений о том, как сервер обрабатывает URL-адрес, который вы отправляете. Сервер решает, как обрабатывать URL-адрес запроса. Большинство веб-серверов являются unix / linux, а это означает, что большинство веб-серверов чувствительны к регистру. - person oᴉɹǝɥɔ; 30.04.2013
comment
W3 говорит, что ПОЛЬЗОВАТЕЛИ должны предполагать, что серверы чувствительны к регистру, но не дает рекомендаций для СЕРВЕРОВ. - person trysis; 24.02.2014
comment
Для обеспечения отказоустойчивости программы, интерпретирующие URL-адреса, должны обрабатывать буквы верхнего регистра как эквивалент нижнего регистра в именах схем (например, разрешить HTTP, а также http). Источник - person realPK; 01.07.2016
comment
@PK_ Обратите внимание, что это справедливо только для части URL-адреса scheme. RFC1738 не обсуждает, следует ли интерпретировать другие части URL-адреса как чувствительные к регистру или нет. - person dthrasher; 28.10.2016
comment
@PK_J Эта часть актуальна только для части URL-адреса scheme (HTTP- ›http, FTP-› ftp) - person Johnny; 26.02.2017
comment
Я думаю, что в этом и во многих ответах на то, что говорится или не говорится в спецификации, отсутствует суть вопроса. ** Должны ли ** они быть чувствительными к регистру? Это действительно тяжелый вопрос. С точки зрения пользователя, чувствительность к регистру - это проблема, не все знают, что имеет значение. Вопрос о том, следует или не следует использовать URI, зависит от контекста вопроса. Для технической гибкости да, они должны быть. Для удобства использования их быть не должно. - person rspring1975; 05.07.2017
comment
Возможно, стоит отметить, что такие схемы, как https, ftp, irc и mailto, все содержат имена DNS, которые, как мы знаем, нечувствительны к регистру. - person Toby Speight; 20.09.2017

Все нечувствительные выделены жирным шрифтом для удобства чтения.

В соответствии с RFC 4343 доменные имена нечувствительны к регистру. Остальной URL-адрес отправляется на сервер с помощью метода GET. Это может быть чувствительно к регистру или нет.

Возьмите эту страницу, например, stackoverflow.com получает строку GET / questions / 7996919 / should-url-be-case-sensitive, отправив HTML-документ в ваш браузер. Stackoverflow.com нечувствителен к регистру, потому что он дает тот же результат для / QUEStions / 7996919 / Should-url- с учетом регистра.

С другой стороны, Википедия чувствительна к регистру, за исключением первого символа заголовка. URL-адреса https://en.wikipedia.org/wiki/Case_sensitivity и https://en.wikipedia.org/wiki/case_sensitivity ведет к той же статье, но https://en.wikipedia.org/wiki/CASE_SENSITIVITY возвращает 404.

person jdh8    schedule 14.06.2013
comment
Википедия на самом деле очень прощает чувствительность к регистру в тех случаях, когда пользователи могут подумать, что слово должно быть в том или ином регистре, но это больше из-за ОКР ... извините, внимательный характер ее редакторов. Однако его URL-адреса технически чувствительны к регистру. - person trysis; 24.02.2014
comment
Это потому, что семантическая, читаемая часть URL-адреса вопроса в stackoverflow не идентифицирует его, а обозначается 7996919. Семантическая часть URL-адреса предназначена только для целей SEO. - person user3367701; 01.12.2015
comment
На самом деле также https://stackoverflow.com/questions/7996919/should-BLABLA-be-or-NOT-to-be работает. Это связано с тем, что сервер stackoverflow.com использует идентификатор вопроса только для его идентификации и возврата правильного URL-адреса и HTML-страницы. - person Bozzy; 14.09.2017

Зависит от ОС хостинга. Сайты, размещенные в Windows, обычно нечувствительны к регистру, поскольку базовая файловая система не чувствительна к регистру. Сайты, размещенные в системах типа Unix, как правило, чувствительны к регистру, поскольку их базовые файловые системы обычно чувствительны к регистру. Часть имени хоста URL-адреса всегда нечувствительна к регистру, изменяется остальная часть пути.

person Jim Nutt    schedule 03.11.2011
comment
Да, как этот с болью обнаружил на HTTP-запросах к файлам на ftp-сервере Unix. - person Laurie Stearn; 03.10.2016
comment
Было бы точнее сказать «зависит от сервера» в общем смысле, потому что обслуживание файлов - не единственный способ ответить на HTTP-запросы. - person Valentin Waeselynck; 26.02.2018

Часть доменного имени URL-адреса не чувствительна к регистру, поскольку DNS игнорирует регистр: http://en.example.org/ и HTTP://EN.EXAMPLE.ORG/ открывают одну и ту же страницу.

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

Если сервер чувствителен к регистру и http://en.example.org/wiki/URL правильный, тогда http://en.example.org/WIKI/URL или http://en.example.org/wiki/url отобразит страницу ошибки HTTP 404, если только эти URL-адреса не указывают на сами допустимые ресурсы.

person Bhavin Shah    schedule 30.05.2013
comment
Этот ответ имеет единственно правильную формулировку: он чувствителен к регистру, хотя его можно рассматривать как нечувствительный к регистру. Единственно верный ответ. - person Daniel W.; 15.06.2016
comment
@DanFromGermany, путь чувствителен к регистру можно смутно вывести из здесь URL-адреса в целом чувствительны к регистру (за исключением имен компьютеров). Могут быть URL-адреса или части URL-адресов, где регистр не имеет значения, но определить их может быть непросто. Но вывод об этом неоднозначен. Как упоминалось в одном из комментариев выше, RFC1738 не обсуждает, следует ли интерпретировать части URL, отличные от схемы, как чувствительные к регистру или нет. Есть ли у вас ссылка, поясняющая, какие части URL-адреса чувствительны к регистру? - person garnet; 13.12.2018
comment
@garnet Из RFC3986 6.2.2.1. Нормализация регистра: Когда URI использует компоненты универсального синтаксиса, всегда применяются правила эквивалентности синтаксиса компонентов; а именно, что схема и хост нечувствительны к регистру и поэтому должны быть нормализованы к нижнему регистру. Например, URI HTTP://www.EXAMPLE.com/ эквивалентен http://www.example.com/. Предполагается, что другие компоненты общего синтаксиса чувствительны к регистру, если иное не определено схемой. - person Daniel W.; 13.12.2018
comment
@garnet И из HTTP RFC: При сравнении двух URI для определения соответствия или нет, клиент ДОЛЖЕН использовать октет за октетным сравнением всех URI с учетом регистра [...] (за исключением схемы и самого хоста). - person Daniel W.; 13.12.2018

Я не фанат старых статей, но поскольку это был один из первых ответов на этот конкретный вопрос, я почувствовал необходимость кое-что прояснить.

Как указано в ответе @Bhavin Shah, доменная часть URL-адреса нечувствительна к регистру, поэтому

http://google.com 

а также

http://GOOGLE.COM 

а также

http://GoOgLe.CoM 

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

so...

http://GOOGLE.COM/ABOUT

а также

http://GOOGLE.COM/about

разные.

Примечание: во многих случаях я говорю «технически», а не «буквально», в большинстве случаев серверы настроены так, чтобы обрабатывать эти элементы одинаково, но можно настроить их так, чтобы они НЕ обрабатывались одинаково. .

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

Итак, чтобы ответить на вопрос, «должны ли серверы учитывать регистр при захвате этих данных, ответ -« да, безусловно ».

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


Комментарий @Hart Simha в основном говорит о том же. Я пропустил это до того, как опубликовал, поэтому я хочу отдать должное, где причитается.

person Kenneth Garza    schedule 19.06.2014

См. Спецификацию здесь: раздел 2.7.3 http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-25#page-19

Схема и хост не чувствительны к регистру и обычно указываются в нижнем регистре; все остальные компоненты сравниваются с учетом регистра.

person Nitin    schedule 12.01.2016

Учтите следующее:

https://www.example.com/createuser.php?name=Paul%20McCartney

В этом гипотетическом примере HTML-форма - с использованием метода GET - отправляет параметр «name» в сценарий PHP, который создает новую учетную запись пользователя.

В этом примере я подчеркиваю, что этот параметр GET должен быть чувствительным к регистру, чтобы сохранить заглавные буквы в слове «Маккартни» (или, как другой пример, чтобы сохранить «Walter d'Isney», поскольку есть другие способы для имен, чтобы нарушить обычные правила использования заглавных букв).

Именно такие случаи руководят рекомендацией W3C о том, что схема и хост нечувствительны к регистру, но все, что происходит после этого, потенциально чувствительно к регистру - и остается на усмотрение сервера. Принуждение к нечувствительности к регистру по стандарту сделало бы приведенный выше пример неспособным сохранить регистр ввода пользователя, переданного как параметр запроса GET.

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

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

Иногда это актуально, в большинстве случаев - нет. Но решение об этих вещах должно быть оставлено на усмотрение сервера / веб-разработчика - и это не может быть предписано стандартом - поскольку только на этом уровне может быть известен контекст.

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

person Bob    schedule 27.10.2018
comment
Считаются ли строки запроса частью местоположения? Я считаю, что они рассматриваются как отдельные объекты и не используются для определения местоположения. - person jpmc26; 30.11.2018
comment
Да, строки запроса отделены от местоположения. Но те же принципы, которые я показал там с параметрами запроса, также могут применяться к другим частям URL-адреса. Некоторые CMS, например, могут целенаправленно переписывать /user.php?id=3756 в / users / PaulMcCartney, чтобы URL-адреса были лучше ориентированы на поисковую оптимизацию (например, Wordpress делает это). Дело в том, что стандарты сознательно отступают от предписаний по сравнению с тем, что зависит от контекста. Решение остается за сервером, поскольку сервер понимает контекст, в отличие от универсального стандарта. - person Bob; 02.12.2018

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

Это не обязательно (это не часть RFC), но делает обмен и хранение URL-адресов более надежным.

Если у меня две страницы на сайте:

http://stackoverflow.com/ABOUT.html

а также

http://stackoverflow.com/about.html

Чем они должны отличаться? Может быть, написано «стиль крика» (заглавные буквы), но с точки зрения IA, различие никогда не должно проводиться путем изменения URL-адреса.

Более того, это легко реализовать в Apache - просто используйте CheckSpelling On из mod_Speling.

person konchog    schedule 20.01.2014

Раздел 6.2.2.1 RFC 3986 говорит, что Схема и хост не чувствительны к регистру и поэтому должны быть нормализованы к нижнему регистру. Например, URI HTTP://www.EXAMPLE.com/ эквивалентен http://www.example.com/. Предполагается, что другие компоненты общего синтаксиса чувствительны к регистру, если иное не определено схемой.

Сервер может внутренне нормализовать переданный URI и обслуживать один и тот же ресурс для URI с другим регистром (/about/ и /ABOUT/), в результате чего URI будет казаться для пользователя нечувствительным к регистру.

person Mykola Novik    schedule 28.05.2021

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

У w3c могут быть свои рекомендации - которые меня очень волнуют - но я хочу переосмыслить, поскольку вопрос здесь.

Почему w3c считает, что доменные имена нечувствительны к регистру, а все остальное остается нечувствительным к регистру?

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

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

Но вопрос только в том, что машины МОГУТ обрабатывать это, если это должно быть сделано таким образом?

Я имею в виду, каковы преимущества именования и доступа к ресурсу, сидящему в hereIsTheResource vs hereistheresource?

Боковая часть очень нечитаема, чем верблюжья, которая читается лучше. Доступно для чтения людьми (включая технический вид).

Итак, вот мои соображения: -

Путь к ресурсам находится где-то посередине структуры программирования и иногда находится рядом с конечным пользователем за браузером.

Ваш URL-адрес (за исключением доменного имени) должен быть нечувствительным к регистру, если ожидается, что ваши пользователи будут касаться его или вводить его и т. Д. Вы должны разработать свое приложение так, чтобы ИЗБЕГАТЬ, чтобы пользователи вводили путь как можно чаще.

Ваш URL-адрес (без имени домена) должен быть чувствителен к регистру, если ваши пользователи никогда не будут вводить его вручную.

Заключение

Путь должен быть чувствительным к регистру. Мои точки зрения относятся к путям, чувствительным к регистру.

person bhantol    schedule 05.08.2014

Символы URL-адресов преобразуются в шестнадцатеричный код (если вы когда-либо замечали, что пробелы в URL-адресах отображаются как% 20 и т. Д.), А поскольку нижний и верхний регистры имеют разные шестнадцатеричные значения, вполне логично, что URL-адреса определенно чувствительны к регистру. Однако дух вопроса, кажется, ДОЛЖЕН быть стандартом, и я говорю нет, но это так. Разработчик / поставщик должен учитывать это в своем коде, если они хотят, чтобы это работало независимо от конечного пользователя.

person Guest    schedule 19.04.2016
comment
это интересный. обычные символы e ASCII (которые имеют верхний и нижний регистр) на самом деле не преобразуются, правда? в URL экранируются только пробелы и расширенные символы. Есть ли у расширенных символов модификатор верхнего / нижнего регистра? - person TygerKrash; 28.11.2016

Я думаю, что в этом и во многих ответах на то, что говорится или не говорится в спецификации, отсутствует суть вопроса. Должны ли они быть чувствительны к регистру? Это действительно тяжелый вопрос. С точки зрения пользователя, чувствительность к регистру - это проблема, не все знают, что имеет значение. Вопрос о том, должны или не должны быть URI, зависит от контекста вопроса. Для технической гибкости да, они должны быть. По удобству использования их быть не должно.

person rspring1975    schedule 05.07.2017

Сохранение дела

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

Чувствительность к регистру

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

http: // www. example.com /abc/def.ghi?jkl=mno#pqr

пользователь @ example.com

Обоснование

Чувствительность к регистру в URL-адресах может иметь несколько применений. В основном:

  1. Встроенная совместимость с файловыми системами, чувствительными к регистру.
  2. Более компактное кодирование данных в URL-адресах, например для сериализации, хеширования, идентификаторов, постоянных ссылок и сокращателей URL-адресов.

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

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

В идеальном мире

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

Многие, похоже, согласны с тем, что URL-адреса без учета регистра явно включены для многих популярных сайтов и служб, чтобы повысить удобство использования. Самый яркий пример - это имя пользователя в адресах электронной почты. Большинство провайдеров электронной почты игнорируют регистр, а иногда даже точки и другие символы (например, [email protected] совпадает с [email protected]). Несмотря на то, что имена пользователей электронной почты по умолчанию чувствительны к регистру, согласно спецификации.

Однако факт в том, что, несмотря на то, что я или другие могли бы хотеть, это то, как все работает в настоящее время. И хотя в конечном итоге глобальный переход к стандарту URL-адресов без учета регистра, вероятно, займет довольно много времени, поскольку в настоящее время чувствительность к регистру широко используется в Интернете для различных целей.

Лучшие практики

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

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

person Beejor    schedule 02.07.2019

Чувствительность к регистру URL-адресов в целом (а также то, являются ли они одинаковыми или нет, если они находятся в другом регистре), необходимо рассматривать со следующих точек зрения:

  • Эквивалентность ресурсов
  • Сравнение URL

С точки зрения эквивалентности ресурсов, как правило, невозможно сказать, что два URL-адреса, отличающиеся каким-либо регистром (нижний регистр, верхний регистр, регистр предложений, регистр верблюда ... любая комбинация регистра), отличаются друг от друга, если ресурс не извлекается из оба URL-адреса, что во многих случаях нецелесообразно (RFC 3986, раздел 6.1, параграф 1). Поэтому, когда ресурс не может быть получен, используется перспектива сравнения.

Однако в случае, когда можно получить ресурс, вопрос становится более сложным (как и ожидалось). В соответствии с положениями RFC 3986, раздел 3.3, параграф 5, как указано ниже.

Помимо точечных сегментов в иерархических путях, сегмент пути считается непрозрачным в соответствии с общим синтаксисом

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

Тем не менее, для схемы и хостовой части органа, спецификация (мягко говоря) заявляет, что они нечувствительны к регистру. См. RFC 3986, раздел 3.1, параграф 1 и RFC 3986, раздел 6.2.2.1, параграф 2.

Исчерпав эту строку запроса, следует взглянуть на перспективу сравнения, чтобы определить, должны ли URI / URL-адреса быть чувствительными к регистру или нет.

Первый намек на это направление появляется при прочтении раздела 6.2.2.1 (выше).

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

Что дополнительно подкрепляется рассмотрением RFC 2616, раздел 3.2.3

При сравнении двух URI, чтобы решить, совпадают они или нет, клиент ДОЛЖЕН использовать октетное сравнение всех URI с учетом регистра.

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

Помимо синтаксиса, в приведенном выше RFC ничего не упоминается о фактической интерпретации пути и запроса, за исключением того, что он «непрозрачен», и только указывает, как (с ДОЛЖНЫМ, а не ОБЯЗАТЕЛЬНО) «клиент» может «сравнивать» URL-адрес. В нем ничего не говорится о том, как сервер (ДОЛЖЕН, не говоря уже о том, что ДОЛЖЕН) интерпретировать остальную часть URL-адреса за пределами схемы / полномочий.

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

person Ironluca    schedule 10.07.2020

вопрос в том, должен ли URL быть чувствительным к регистру?

Я не вижу пользы или хорошей практики в URL-адресах, чувствительных к регистру. Это глупо, это отстой, и этого следует избегать всегда.

Чтобы подкрепить свое мнение, когда кто-то спрашивает, какой URL-адрес, как вы могли бы объяснить, какие символы URL-адреса являются верхним или нижним регистром? Это чушь, и никто никогда не должен вам говорить иначе.

person HenriKoppen    schedule 21.08.2013
comment
У того, что URL-адреса чувствительны к регистру, есть одно преимущество. На некоторых веб-сайтах, где объекты кодируются уникальными идентификаторами, на которые можно ссылаться через URL-адрес, кодировка может быть чем-то вроде base64 вместо base36. Это позволяет кодировать экспоненциально больше уникальных объектов с тем же количеством символов URL. Например, foo.com/000 - foo.com/zzz (без учета регистра) может относиться к 36 ^ 3 уникальным объектам, где как foo.com/000 - foo.com/ZZZ (с учетом регистра, то есть foo.com/zzz и foo.com/ZZZ - разные пути), будет относиться к 62 ^ 3 объектам. - person Hart Simha; 11.09.2013
comment
Это не ответ, это самоуверенный комментарий. - person the Tin Man; 20.08.2016
comment
Я подкрепляю это примером. URL-адреса используются людьми (см. Исходный вопрос), а не компьютерами. Это очень сложно, поэтому посмотрите, ПОЧЕМУ ссылка не работает, и поскольку почти ВСЕ домены нечувствительны к регистру, то же самое должно быть и в остальной части URL. Прогнозы против моего тона голоса (что плохо) или из-за того, что технические специалисты склонны предпочитать техническую красоту пользовательскому опыту. - person HenriKoppen; 20.08.2016
comment
@theTinMan Это ответ на вопрос, вызывающий мнение. - person chharvey; 20.01.2018
comment
Я согласен с @HartSimha, и поскольку вопрос требует мнения: если часть URL-маршрута не используется для идентификации уникального объекта, пожалуйста, из любви ко всему хорошему в Интернете, НЕ делайте его чувствительным к регистру. - person jaybro; 26.02.2019

Для веб-сайтов, размещенных на сервере Linux, URL-адрес чувствителен к регистру. http://www.google.com/about и http://www.google.com/About будет перенаправлен в разные места. В Windows Server URL-адрес не чувствителен к регистру, как при именовании FOLDER, и будет перенаправлен в то же место.

person Vishnu    schedule 03.06.2015
comment
Это правильно, но, поскольку невозможно различить эти два раздела пути, который отправляется на сервер, включая параметры, вплоть до #anchor, который не отправляется на сервер, всегда следует рассматривать с учетом регистра. - person risingballs; 07.07.2021

Можно сделать URL-адреса без учета регистра

RewriteEngine on
rewritemap lowercase int:tolower
RewriteCond $1 [A-Z]
RewriteRule ^/(.*)$ /${lowercase:$1} [R=301,L]

Сделать Google.com..GOOGLE.com и т. Д. Напрямую на google.com

person Renjith Gopi    schedule 01.07.2015
comment
Это не отвечает на вопрос - person monokrome; 16.09.2015
comment
Возникает вопрос: должен ли URL быть чувствительным к регистру? Ваш ответ: как сделать URL-адреса без учета регистра - person realPK; 01.07.2016