Переписать движок
В веб-приложениях механизм перезаписи — это программный компонент, который выполняет перезапись 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/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/search term
будет URL-кодирован браузером перед отправкой HTTP-запроса . Сервер может переписать это так:
http://example.com/search.php?q=search%20term
Преимущества и недостатки
[ редактировать ]Возможно, этот раздел содержит оригинальные исследования . ( Апрель 2013 г. ) |
Использование перезаписи URL-адресов имеет несколько преимуществ: [1]
- Ссылки становятся «чище» и информативнее, что повышает их «дружественность» как для пользователей , так и для поисковых систем .
- Они предотвращают нежелательное « встроенное соединение », которое может привести к потере пропускной способности .
- Сайт может продолжать использовать те же 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. [2]
- URL Rewrite доступен как расширение Microsoft IIS . [3]
- Ruby on Rails имеет встроенную функцию перезаписи URL-адресов через Routes. [4]
- Jakarta Servlet имеет расширяемую перезапись URL-адресов с помощью OCPsoft URLRewriteFilter и Tuckey UrlRewriteFilter.
- Jakarta Faces упростила перезапись URL-адресов с помощью PrettyFaces: URLRewriteFilter.
- Django использует систему, основанную на регулярных выражениях . Это не совсем перезапись URL-адресов, поскольку нет ни сценария, который можно было бы «перезаписать», ни даже структуры каталогов; но он обеспечивает полную гибкость перезаписи URL-адресов. [5]
- Java Stripes Framework имеет интегрированную функциональность начиная с версии 1.5. [6]
- Многие фреймворки Perl, такие как Mojolicious и Catalyst , имеют эту функцию. [7]
- CodeIgniter обеспечивает перезапись URL-адресов.
- Lighttpd имеет модуль mod_rewrite. [8]
- В nginx есть модуль перезаписи. [9] [10] Например, генерация многосвязной страницы с несколькими переменными из URI типа /f101,n61,o56,d/ifconfig возможно, где несколько отдельных частей, например f101 расширяется с помощью регулярных выражений до переменных, обозначающих FreeBSD 10.1-RELEASE и так далее.
- HTTP-сервер Hiawatha имеет набор инструментов URL, который поддерживает перезапись URL-адресов. [11]
- HTTP-сервер Cherokee поддерживает регулярные выражения перезаписи и перенаправления URL-адресов.
С точки зрения разработки программного обеспечения переписывание URL-адресов может помочь в модульности кода и потоке управления . [12] что делает его полезной функцией современных веб-фреймворков.
См. также
[ редактировать ]- Контроллер доставки приложений
- Менеджер трафика aiScaler
- .htaccess
- HTTP-сервер Apache
- Согласование содержания
- HTTP
- Интернет-информационный сервер
- Постоянная ссылка
- Веб-сервер Зевса
Примечания
[ редактировать ]- ^ Многие из них применимы только к HTTP-серверам, поведение которых по умолчанию заключается в сопоставлении URL-адресов с объектами файловой системы (т.е. файлами и каталогами); в некоторых средах, например на многих платформах серверов приложений HTTP , это становится неактуальным.
- ^ документация mod_rewrite
- ^ Расширение перезаписи URL-адресов для Microsoft IIS
- ^ «Маршрутизация Rails снаружи внутрь» . «Ruby on Rails . Проверено 25 апреля 2014 г. » .
- ^ Джанго URLconf
- ^ очистите URL-адреса в Stripes 1.5
- ^ Путеводители — Весёлый путеводитель по галактике . Модный. Проверено 8 сентября 2013 г.
- ^ Документы ModRewrite-Lighttpd-lighty labs . Redmine.lighttpd.net. Проверено 8 сентября 2013 г.
- ^ «ngx_http_rewrite_module — переписать» . nginx.org . Проверено 25 декабря 2014 г.
- ^ Муренин, Константин А. (18 февраля 2013 г.). «Динамический веб-сайт, полностью написанный на nginx.conf? Представляем mdoc.su!» . [электронная почта защищена] (список рассылки) . Проверено 24 декабря 2014 г.
- ^ URL-ИНСТРУМЕНТ, часть руководства веб-сервера Hiawatha.
- ^ «Чистый URL» . ДокФордж . Проверено 25 апреля 2014 г.