В веб-приложениях механизм перезаписи — это программный компонент, который выполняет перезапись URL -адресов (унифицированных указателей ресурсов), изменяя их внешний вид. Эта модификация называется перезаписью URL . Это способ реализации сопоставления или маршрутизации URL-адресов в веб-приложении . Движок обычно является компонентом веб-сервера или платформы веб-приложения . Переписанные URL-адреса (иногда называемые короткими , красивыми или необычными URL-адресами , удобными для поисковых систем — URL-адресами SEF или слагами ) используются для предоставления более коротких и более релевантных ссылок на веб-страницы. Этот метод добавляет уровень абстракции между файлами, используемыми для создания веб-страницы, и 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/Блог/06/04/02/
В этом случае исходная строка запроса была более полезной, поскольку переменные запроса указывали месяц и день:
http://www.example.com/Blog/Posts.php?Year=06&Month=04&Day=02
Многие веб-фреймворки включают перезапись URL-адресов либо напрямую, либо через модули расширения.
С точки зрения разработки программного обеспечения переписывание URL-адресов может помочь в модульности кода и потоке управления [12] , что делает его полезной функцией современных веб-фреймворков.