Przepisz silnik - Rewrite engine
Silnik przepisać to składnik oprogramowania, które wykonuje przepisywanie na Uniform Resource lokalizatorów , zmiany ich wyglądu. Ta modyfikacja nazywa się przepisywaniem adresów URL . Jest to sposób implementacji mapowania adresów URL lub routingu w aplikacji internetowej . Silnik jest zazwyczaj składnikiem serwera WWW lub struktury aplikacji WWW . Przepisane adresy URL (nazywane czasami krótkimi , ładnymi lub fantazyjnymi adresami URL , przyjaznymi dla wyszukiwarek adresami URL SEF lub slugami ) są używane do dostarczania krótszych i bardziej trafnie wyglądających linków do stron internetowych. Technika dodaje warstwę abstrakcji między plikami używanymi do generowania strony internetowej a adresem URL prezentowanym światu zewnętrznemu.
Stosowanie
Witryny sieci Web z zawartością dynamiczną mogą używać adresów URL generujących strony z serwera przy użyciu parametrów ciągu zapytania . Są one często przepisywane, aby przypominały adresy URL stron statycznych w witrynie z hierarchią podkatalogów . Na przykład adres URL strony wiki może wyglądać tak:
http://example.com/w/index.php?title=Page_title
ale można przepisać jako:
http://example.com/wiki/Page_title
Blog może mieć adres URL, który koduje daty każdego wpisu:
http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=19
Można to zmienić w następujący sposób:
http://www.example.com/Blog/2006/12/19/
co pozwala również użytkownikowi zmienić adres URL, aby zobaczyć wszystkie posty dostępne w grudniu, po prostu usuwając tekst kodujący dzień „19”, tak jakby przechodził „w górę” katalogu:
http://www.example.com/Blog/2006/12/
Witryna może przekazywać specjalistyczne terminy z adresu URL do swojej wyszukiwarki jako termin wyszukiwania. Umożliwiłoby to użytkownikom wyszukiwanie bezpośrednio z przeglądarki. Na przykład, adres URL, jak weszła przeglądarki lokalizacji baru :
http://example.com/search term
Zostanie zakodowany przez przeglądarkę przed wysłaniem żądania HTTP . Serwer mógłby przepisać to na:
http://example.com/search.php?q=search%20term
Zalety i wady
Korzystanie z przepisywania adresów URL ma kilka zalet:
- Linki są „czystsze” i bardziej opisowe, dzięki czemu są bardziej „przyjazne” zarówno dla użytkowników, jak i wyszukiwarek .
- Zapobiegają niepożądanym „ połączeniom w linii ”, które mogą marnować przepustowość .
- Witryna może nadal używać tych samych adresów URL, nawet jeśli podstawowa technologia wykorzystywana do ich obsługi zostanie zmieniona (na przykład przejście na nowy silnik blogów ).
Mogą jednak występować również wady; jeśli użytkownik chce zmodyfikować adres URL w celu pobrania nowych danych, przepisanie adresu URL może utrudnić konstrukcję niestandardowych zapytań ze względu na brak nazwanych zmiennych. Na przykład może być trudno określić datę w następującym formacie:
http://www.example.com/Blog/06/04/02/
W tym przypadku oryginalny ciąg zapytania był bardziej przydatny, ponieważ zmienne zapytania wskazywały miesiąc i dzień:
http://www.example.com/Blog/Posts.php?Year=06&Month=04&Day=02
Frameworki internetowe
Wiele struktur internetowych obejmuje przepisywanie adresów URL, bezpośrednio lub za pośrednictwem modułów rozszerzeń.
- Serwer Apache HTTP Server ma przepisywanie adresów URL zapewniane przez moduł mod_rewrite.
- URL Rewrite jest dostępny jako rozszerzenie Microsoft IIS .
- Ruby on Rails ma wbudowane przepisywanie adresów URL przez Routes.
- Jakarta Servlet ma możliwość rozszerzenia przepisywania adresów URL za pomocą OCPsoft URLRewriteFilter i Tuckey UrlRewriteFilter.
- Jakarta Server Faces uprościło przepisywanie adresów URL za pomocą PrettyFaces: URLRewriteFilter.
- Django używa systemu opartego na wyrażeniach regularnych . Nie jest to wyłącznie przepisywanie adresów URL, ponieważ nie ma skryptu, do którego można by „przepisać”, ani nawet struktury katalogów; ale zapewnia pełną elastyczność przepisywania adresów URL.
- Java Stripes Framework posiada zintegrowaną funkcjonalność od wersji 1.5.
- Wiele frameworków Perla, takich jak Mojolicious i Catalyst , ma tę funkcję.
- CodeIgniter ma zapewnione przepisywanie adresów URL.
- lighttpd ma moduł mod_rewrite.
- nginx ma moduł przepisywania. Na przykład możliwe jest wielolinkowe generowanie stron z wieloma zmiennymi z URI, takiego jak /f101,n61,o56,d/ifconfig , gdzie wiele pojedynczych części, takich jak f101, jest rozszerzanych za pomocą wyrażeń regularnych w zmienne, aby oznaczyć FreeBSD 10.1 RELEASE i tak dalej.
- Serwer HTTP Hiawatha posiada zestaw narzędzi URL, który obsługuje przepisywanie adresów URL.
- Serwer HTTP Cherokee obsługuje wyrażenia regularne przepisywania adresów URL i przekierowań.
Z perspektywy rozwoju oprogramowania przepisywanie adresów URL może pomóc w modularyzacji kodu i kontroli przepływu , dzięki czemu jest użyteczną funkcją nowoczesnych frameworków internetowych.
Zobacz też
- Kontroler dostarczania aplikacji
- Menedżer ruchu aiScaler
- .htaccess
- Serwer HTTP Apache
- Negocjacja treści
- HTTP
- Internetowy serwer informacyjny
- Permalink
- Serwer WWW Zeusaus
Uwagi
Linki zewnętrzne
- Apache mod_rewrite
- Apache mod_rewrite Pełna lista zmiennych CGI i wartości do konstruowania przepisywania.