Переписать движок - 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-адрес для получения новых данных, перезапись 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-адресов может помочь в модулировании кода и потоке управления , что делает его полезной функцией современных веб-фреймворков.
Смотрите также
- Контроллер доставки приложений
- Менеджер трафика aiScaler
- .htaccess
- HTTP-сервер Apache
- Согласование содержания
- HTTP
- Интернет-информационный сервер
- Постоянная ссылка
- Веб-сервер Zeus
Заметки
Внешние ссылки
- Apache mod_rewrite
- Apache mod_rewrite Полный список переменных и значений CGI для создания перезаписей.