В веб-приложениях механизм перезаписи — это программный компонент, который выполняет переписывание URL -адресов (унифицированных указателей ресурсов), изменяя их внешний вид. Это изменение называется переписыванием URL-адресов . Это способ реализации сопоставления или маршрутизации URL-адресов в веб-приложении . Механизм обычно является компонентом веб-сервера или фреймворка веб-приложения . Переписанные URL-адреса (иногда называемые короткими , красивыми или причудливыми URL-адресами , удобными для поисковых систем — SEF- URL-адресами или слагами ) используются для предоставления более коротких и релевантных ссылок на веб-страницы. Этот метод добавляет уровень абстракции между файлами, используемыми для генерации веб-страницы, и URL-адресом, который представляется внешнему миру.
Веб-сайты с динамическим содержимым могут использовать URL-адреса, которые генерируют страницы с сервера с использованием параметров строки запроса . Они часто переписываются, чтобы напоминать URL-адреса для статических страниц на сайте с иерархией подкаталогов . Например, URL-адрес страницы вики с заголовком Rewrite_engine может быть:
http://example.com/w/index.php?title=Rewrite_engine
но можно переписать как:
http://example.com/wiki/URL_rewriting/Rewrite_engine
Блог может иметь URL - адрес, в котором закодированы даты каждой записи:
http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=19
Его можно изменить следующим образом:
http://www.example.com/Blog/2006/12/19/
что также позволяет пользователю изменить URL-адрес, чтобы увидеть все публикации, доступные в декабре, просто удалив текст, кодирующий день «19», как будто он перемещается «вверх» по каталогу:
http://www.example.com/Blog/2006/12/
Сайт может передавать специализированные термины из URL в свою поисковую систему в качестве поискового термина. Это позволит пользователям выполнять поиск непосредственно из своего браузера. Например, URL, введенный в адресную строку браузера :
http://example.com/поисковый термин
будет закодирован браузером в URL до того, как он сделает HTTP-запрос . Сервер может переписать это так:
http://example.com/search.php?q=search%20term
Использование перезаписи URL-адресов имеет несколько преимуществ: [1]
Однако могут быть и недостатки; если пользователь хочет изменить URL для получения новых данных, перезапись URL может помешать построению пользовательских запросов из-за отсутствия именованных переменных. Например, может быть сложно определить дату из следующего формата:
http://www.example.com/Blog/06/04/02/
В этом случае исходная строка запроса оказалась более полезной, поскольку переменные запроса указывали месяц и день:
http://www.example.com/Blog/Posts.php?Year=06&Month=04&Day=02
Многие веб-фреймворки включают функцию перезаписи URL-адресов, как напрямую, так и через модули расширения.
С точки зрения разработки программного обеспечения , перезапись URL-адресов может помочь в модуляризации кода и управлении потоком , [12] что делает ее полезной функцией современных веб-фреймворков.