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