Přepište stroj - Rewrite engine
![]() | tento článek příliš spoléhá na Reference na primární zdroje.Ledna 2011) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
A přepsat engine je softwarová součást, která provádí přepis na Jednotné vyhledávače zdrojů, upravující jejich vzhled. Tato modifikace se nazývá Přepisování URL. Je to způsob implementace Mapování URL nebo směrování v rámci webová aplikace. Motor je obvykle součástí a webový server nebo rámec webových aplikací. Přepsané adresy URL (někdy známé jako krátký, dosti nebo fantastické adresy URL, přátelské pro vyhledávače - SEF URL, nebo slimáci ) slouží k poskytování kratších a relevantnějších odkazů na webové stránky. Tato technika přidává vrstvu abstrakce mezi soubory použitými ke generování webové stránky a adresou URL, která je prezentována vnějšímu světu.
Používání
Webové stránky s dynamický obsah může používat adresy URL, které generují stránky ze serveru pomocí Řetězec dotazu parametry. Často se přepisují, aby se podobaly adresám URL statické stránky na webu s hierarchie podadresářů. Například adresa URL a wiki stránka může být:
http://example.com/w/index.php?title=stranka_titulu
ale lze jej přepsat jako:
http://example.com/wiki/Stranka_titul
A blog může mít adresu URL, která kóduje data každého záznamu:
http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=19
Lze jej změnit takto:
http://www.example.com/Blog/2006/12/19/
který také umožňuje uživateli změnit adresu URL a zobrazit všechny příspěvky dostupné v prosinci, jednoduše odstraněním textu kódujícího den „19“, jako by procházel adresář „nahoru“:
http://www.example.com/Blog/2006/12/
Web může předávat specializované výrazy z adresy URL na svou vyhledávač jako hledaný výraz. To by uživatelům umožnilo vyhledávat přímo z jejich prohlížeče. Například adresa URL zadaná do prohlížeče lišta umístění:
http://example.com/hledaný termín
Bude urlencoded prohlížečem, než provede HTTP požadavek. Server by to mohl přepsat na:
http://example.com/search.php?q=search%20term
Výhody a nevýhody
![]() | Tato sekce případně obsahuje původní výzkum.duben 2013) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Přepisování adres URL má několik výhod:[1]
- Odkazy jsou „čistší“ a popisnější, což zlepšuje jejich „přívětivost“ k oběma uživatelů a vyhledávače.
- Zabraňují nežádoucímu “vložené propojení ", které mohou plýtvat šířka pásma.
- Web může i nadále používat stejné adresy URL, i když se změní základní technologie použitá k jejich poskytování (například přechod na nový blogovací modul ).
Mohou však existovat i nevýhody; pokud chce uživatel upravit URL, aby získal nová data, Přepisování URL může bránit konstrukci vlastních dotazů kvůli nedostatku pojmenovaných proměnných. Může být například obtížné určit datum z následujícího formátu:
http://www.example.com/Blog/06/04/02/
V tomto případě byl původní řetězec dotazu užitečnější, protože proměnné dotazu uváděly měsíc a den:
http://www.example.com/Blog/Posts.php?Year=06&Month=04&Day=02
Webové rámce
Mnoho webových rozhraní zahrnuje přepisování adres URL, a to buď přímo, nebo prostřednictvím rozšiřujících modulů.
- Apache HTTP Server má přepisování URL poskytované modulem mod_rewrite.[2]
- URL Rewrite je k dispozici jako rozšíření Microsoft IIS.[3]
- Ruby on Rails má vestavěný přepis URL přes Routes.[4]
- Jakarta Servlet má rozšiřitelné přepisování URL prostřednictvím OCPsoft URLRewriteFilter a Tuckey UrlRewriteFilter.
- Tváře serveru Jakarta má zjednodušené přepisování URL přes PrettyFaces: URLRewriteFilter.
- Django používá a regulární výrazy -založený systém. Nejedná se o striktní přepis URL, protože neexistuje žádný skript, který by bylo možné „přepsat“, ani struktura adresářů; ale poskytuje plnou flexibilitu přepisování adres URL.[5]
- Jáva Stripes Framework má integrovanou funkcionalitu od verze 1.5.[6]
- Mnoho perlských frameworků, jako např Mojolicious a Katalyzátor, mít tuto funkci.[7]
- CodeIgniter má k dispozici přepis URL.
- lighttpd má modul mod_rewrite.[8]
- nginx má přepisovací modul.[9][10] Například generování stránky s více odkazy s více proměnnými z a URI jako / f101, n61, o56, d / ifconfig je možné, kde se líbí více jednotlivých částí f101 rozšířit pomocí regulární výrazy do proměnných k označení FreeBSD 10.1-ZPRÁVA a tak dále.
- Hiawatha HTTP server má URL Toolkit, který podporuje přepis URL.[11]
- Cherokee HTTP server podporuje regulární výrazy přepisování a přesměrování URL.
Od a vývoj softwaru perspektiva, přepis URL může pomoci při modularizaci kódu a regulační tok,[12] což je užitečná vlastnost moderních webových frameworků.
Viz také
- Controller Delivery Application
- aiScaler Traffic Manager
- .htaccess
- Apache HTTP Server
- Vyjednávání obsahu
- HTTP
- Internetový informační server
- Trvalý odkaz
- Webový server Zeus
Poznámky
- ^ Mnoho z nich platí pouze pro servery HTTP, jejichž výchozí chování je mapovat adresy URL na souborový systém entity (tj. soubory a adresáře); určitá prostředí, například mnoho HTTP aplikační server platformy, učinit toto irelevantní.
- ^ dokumentace mod_rewrite
- ^ Rozšíření URL Rewrite pro Microsoft IIS
- ^ „Směrování kolejnic z vnějšku dovnitř“. „Ruby on Rails. Citováno 25. dubna 2014.
- ^ Django URLconf
- ^ vyčistit adresy URL v pruzích 1.5
- ^ Průvodci - Mojolicious průvodce po galaxii. Mojolicious. Citováno 2013-09-08.
- ^ Docs ModRewrite - Lighttpd - světelné laboratoře. Redmine.lighttpd.net. Citováno 2013-09-08.
- ^ "ngx_http_rewrite_module - přepsat". nginx.org. Citováno 25. prosince 2014.
- ^ Murenin, Constantine A. (18. února 2013). „Dynamický web napsaný zcela v nginx.conf? Představujeme mdoc.su!“. [email protected] (Poštovní seznam). Citováno 24. prosince 2014.
- ^ URL TOOLKIT část příručky k webovému serveru Hiawatha
- ^ „Clean URL“. DocForge. Citováno 25. dubna 2014.
externí odkazy
- Apache mod_rewrite
- Apache mod_rewrite Úplný seznam CGI proměnných a hodnot pro konstrukci přepisů.