Переписать движок - Rewrite engine

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

Применение

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

http://example.com/w/index.php?title=Page_title

но можно переписать как:

http://example.com/wiki/Page_title

У блога может быть 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/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=06&Month=04&Day=02

Веб-фреймворки

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

  • HTTP-сервер Apache имеет функцию перезаписи URL, обеспечиваемую модулем mod_rewrite.
  • Переопределение URL-адресов доступно как расширение Microsoft IIS .
  • Ruby on Rails имеет встроенную функцию перезаписи URL-адресов через Routes.
  • Сервлет Jakarta имеет расширяемую перезапись URL-адресов с помощью OCPsoft URLRewriteFilter и Tuckey UrlRewriteFilter.
  • Jakarta Server Faces упростил перезапись URL-адресов с помощью PrettyFaces: URLRewriteFilter.
  • Django использует систему на основе регулярных выражений . Это не является строго переписыванием URL-адресов, поскольку нет сценария для «перезаписи» или даже структуры каталогов; но он обеспечивает полную гибкость перезаписи URL.
  • В Java Stripes Framework встроена функциональность, начиная с версии 1.5.
  • Многие фреймворки Perl, такие как Mojolicious и Catalyst , имеют эту функцию.
  • В CodeIgniter предусмотрена возможность перезаписи URL.
  • lighttpd имеет модуль mod_rewrite.
  • В nginx есть модуль перезаписи. Например, возможно создание многосвязной страницы с несколькими переменными из URI, такого как / f101, n61, o56, d / ifconfig , где несколько отдельных частей, таких как f101, расширяются с помощью регулярных выражений в переменные для обозначения FreeBSD 10.1- РЕЛИЗ и пр.
  • HTTP-сервер Hiawatha имеет набор инструментов URL, который поддерживает перезапись URL.
  • HTTP-сервер Cherokee поддерживает регулярные выражения перезаписи и перенаправления URL-адресов.

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

Смотрите также

Заметки

Внешние ссылки