Человекопонятный URL: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Vladis13 (обсуждение | вклад) |
Sunpriat (обсуждение | вклад) →Преамбула: Таблица примеров из https://en.wikipedia.org/w/index.php?title=Semantic_URL&oldid=724453323 |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 2: | Строка 2: | ||
{{другие значения|ЧПУ (значения)}} |
{{другие значения|ЧПУ (значения)}} |
||
''' |
'''Семантический URL''' — URL, который не содержит много дополнительных символов<ref>{{Книга|автор=Quentin Zervaas|заглавие=Practical Web 2.0 Applications with PHP|ссылка=https://books.google.ru/books?id=ARVK2f30-QwC&pg=PA5|ответственный=|издание=|место=|издательство=Apress|год=2008-03-11|страницы=5|страниц=580|isbn=9781430204756}}</ref>, наполненный ключевыми словами, кратко описывающими содержание<ref>{{Книга|автор=Duane Forrester|заглавие=Turn Clicks Into Customers: Proven Marketing Techniques for Converting Online Traffic into Revenue: Proven|ссылка=https://books.google.com/books?id=cgSPqDEGRCMC|ответственный=|издание=|место=|издательство=McGraw Hill Professional|год=2010-01-08|страницы=14|страниц=238|isbn=9780071638685}}</ref>. Также используются названия: clean URL, RESTful URL, user-friendly URL, search engine-friendly URL (SEF URL)<ref>{{Книга|автор=Мэрриотт Дженнифер, Уоринг Элин|часть=SEF URL|заглавие=Joomla! 3.0. Официальное руководство|ссылка=https://books.google.com/books?id=MsLDCwAAQBAJ|ответственный=|издание=|место=СПб.|издательство=Издательский дом "Питер"|год=2013|страницы=464|страниц=496|isbn=9785496006637}}</ref>, человеко-понятный URL (ЧПУ, «У» от жаргонного «урл» - URL). Такой [[URL|веб-адрес]], состоит из читаемых слов, написанных символами таблицы [[ASCII]]. Подразумевается{{кем}}, что веб-адрес не использует [[HTTP#GET|GET]]-параметры в адресной строке [[Браузер|браузера]], кроме случая модификации данных этой страницы или передачи [[Мета-информация|мета-информации]].{{Неоднозначно}}{{значимость факта}} Часто является отображением иерархической структуры [[Каталог (файловая_система)|каталогов]] (папок) и имён ресурса.{{Неоднозначно}}{{значимость факта}} Компания «Google» подобные адреса называет «'''''простыми'''''»<ref>{{статья|автор=Google Inc|заглавие=Руководство по поисковой оптимизации для начинающих|ссылка=http://static.googleusercontent.com/media/www.google.ru/ru/ru/intl/ru/webmasters/docs/search-engine-optimization-starter-guide-ru.pdf|страницы=8}}</ref>. |
||
Например: |
|||
{| class="standard" |
|||
! Не-семантический URL !! Семантический URL |
|||
|- |
|||
| <code><nowiki>http://example.com/index.php?page=name</nowiki></code> |
|||
| <code><nowiki>http://example.com/name</nowiki></code> |
|||
|- |
|||
| <code><nowiki>http://example.com/index.php?page=consulting/marketing</nowiki></code> |
|||
| <code><nowiki>http://example.com/consulting/marketing</nowiki></code> |
|||
|- |
|||
| <code><nowiki>http://example.com/products?category=2&pid=25</nowiki></code> |
|||
| <code><nowiki>http://example.com/products/2/25</nowiki></code> |
|||
|- |
|||
| <code><nowiki>http://example.com/cgi-bin/feed.cgi?feed=news&frm=rss</nowiki></code> |
|||
| <code><nowiki>http://example.com/news.rss</nowiki></code> |
|||
|- |
|||
| <code><nowiki>http://example.com/services/index.jsp?category=legal&id=patents</nowiki></code> |
|||
| <code><nowiki>http://example.com/services/legal/patents</nowiki></code> |
|||
|- |
|||
| <code><nowiki>http://example.com/kb/index.php?cat=8&id=41</nowiki></code> |
|||
| <code><nowiki>http://example.com/kb/8/41</nowiki></code> |
|||
|- |
|||
| <code><nowiki>http://example.com/index.php?mod=profiles&id=193</nowiki></code> |
|||
| <code><nowiki>http://example.com/profiles/193</nowiki></code> |
|||
|- |
|||
| <code><nowiki>http://en.wikipedia.org/w/index.php?title=Semantic_URL</nowiki></code> |
|||
| <code><nowiki>http://en.wikipedia.org/wiki/Semantic_URL</nowiki></code> |
|||
|} |
|||
== Преимущества ЧПУ == |
== Преимущества ЧПУ == |
Версия от 09:39, 8 июля 2016
Возможно, эта статья содержит оригинальное исследование. |
Семантический URL — URL, который не содержит много дополнительных символов[1], наполненный ключевыми словами, кратко описывающими содержание[2]. Также используются названия: clean URL, RESTful URL, user-friendly URL, search engine-friendly URL (SEF URL)[3], человеко-понятный URL (ЧПУ, «У» от жаргонного «урл» - URL). Такой веб-адрес, состоит из читаемых слов, написанных символами таблицы ASCII. Подразумевается[кем?], что веб-адрес не использует GET-параметры в адресной строке браузера, кроме случая модификации данных этой страницы или передачи мета-информации.[неоднозначно][значимость факта?] Часто является отображением иерархической структуры каталогов (папок) и имён ресурса.[неоднозначно][значимость факта?] Компания «Google» подобные адреса называет «простыми»[4].
Например:
Не-семантический URL | Семантический URL |
---|---|
http://example.com/index.php?page=name
|
http://example.com/name
|
http://example.com/index.php?page=consulting/marketing
|
http://example.com/consulting/marketing
|
http://example.com/products?category=2&pid=25
|
http://example.com/products/2/25
|
http://example.com/cgi-bin/feed.cgi?feed=news&frm=rss
|
http://example.com/news.rss
|
http://example.com/services/index.jsp?category=legal&id=patents
|
http://example.com/services/legal/patents
|
http://example.com/kb/index.php?cat=8&id=41
|
http://example.com/kb/8/41
|
http://example.com/index.php?mod=profiles&id=193
|
http://example.com/profiles/193
|
http://en.wikipedia.org/w/index.php?title=Semantic_URL
|
http://en.wikipedia.org/wiki/Semantic_URL
|
Преимущества ЧПУ
«Понятные человеку URL» предполагают сокращение адресов страниц до максимально лаконичных и понятных. Они создают подобие естественной для человека логической структуры данных на сервере, представляя её в виде иерархичной (древовидной) структуры, аналогично файловой системе.
Такие адреса удобней прочитать, понять и воспроизвести. К тому же это помогает ориентироваться в логической структуре сайта, лишь взглянув на вложенность каталогов. Не обязательно переходить на страницу, чтобы узнать, что на ней размещено. В некоторых случаях для того, чтобы пройти на родительские каталоги, необходимо всего лишь стереть до нужного места адрес, а чтобы перейти на главную страницу, стирается всё, кроме доменного имени.
Такие адреса демонстрируются поисковыми системами прямо в поисковой выдаче[5], в том числе по этим адресам происходит поиск ключевых слов.
Реализация на различных серверах
Интерпретацией адресов страниц, как сказано выше, занимается сервер и программное обеспечение сайта. Для каждой серверной реализации есть собственный модуль, реализующий подобную функциональность.
На сервере IIS такая функциональность реализуется бесплатным модулем «URLRewriter». В то же время для сервера Apache существует модуль «mod_rewrite», который настраивается через файл .htaccess.
Например, указав следующий код, веб-мастер сможет в PHP через массив $_SERVER['REQUEST_URI']
получать все переданные параметры, а точкой входа по любому запросу будет index.php[6].
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L,QSA]
В веб-фреймворках (CodeIgniter, Django, Node.js, Ruby on Rails или Zend Framework) веб-сервер не обращается к скрипту, а просматривает специальный файл на предмет настроек указанного пути. Такой путь указывается или регулярными выражениями, или на специальном языке.
Например, в Ruby on Rails, чтобы указать, что при вызове /users/login
будет вызываться метод show
класса users
, а в случае /users/
метод index
класса users
будет следующий код:
Шаблон:Код
В некоторых веб-инструментах подобные конструкции указывать не требуется, и все адреса зависят от метода класса и определяются его названием и количеством аргументов.
Например, так действует Ramaze. При вызове show/id/
, где id — переменная (при этом класс обязательно должен быть контроллером):
Шаблон:Код
Возможные проблемы
- Зачастую ЧПУ удлиняет строку веб-адреса. Излишне длинная строка адреса может быть неудобна как для использования людьми, так и не работать из-за технических ограничений на длину веб-адресов.
- Использование кириллицы в веб-адресе имеет следующий нюанс. Адресация в интернете использует только символы сокращённой версии кодировки ASCII (английские буквы, цифры, и несколько символов). По этой причине другие символы кодируются в представление вида:
%D0%9B
(соответствует букве «Л»). Так, например, «Лук» превратится в%D0%9B%D1%83%D0%BA
.
Примечания
- ↑ Quentin Zervaas. Practical Web 2.0 Applications with PHP. — Apress, 2008-03-11. — С. 5. — 580 с. — ISBN 9781430204756.
- ↑ Duane Forrester. Turn Clicks Into Customers: Proven Marketing Techniques for Converting Online Traffic into Revenue: Proven. — McGraw Hill Professional, 2010-01-08. — С. 14. — 238 с. — ISBN 9780071638685.
- ↑ Мэрриотт Дженнифер, Уоринг Элин. SEF URL // Joomla! 3.0. Официальное руководство. — СПб.: Издательский дом "Питер", 2013. — С. 464. — 496 с. — ISBN 9785496006637.
- ↑ Google Inc. Руководство по поисковой оптимизации для начинающих. — С. 8.
- ↑ Sefurl — Search Engine Friendly Uniform Resource Locator (нем.).
- ↑ ЧПУ на PHP. Прочь от ModeRewrite правил. Единая точка входа.
Ссылки
- Сергей Кокшаров. ЧПУ-адреса - описание, рекомендации, примеры . devaka.ru (27 июня 2012).
- «§ 48. Боремся за чистоту URL», Артемий Лебедев, «ру/Ководство», 23 марта 2000
- «§ 49. Дублирующая навигация», Артемий Лебедев, «ру/Ководство», 22 апреля 2000
- Якоб Нильсен URL as UI (англ.)
- Пол Хоффман The User Interface of URLs (англ.)
- Cool URIs don’t change (англ.)