Yeniden yazma motoru - Rewrite engine

Bir motoru yeniden yaz gerçekleştiren bir yazılım bileşenidir yeniden yazma açık Tekdüzen Kaynak Konum Belirleyicileri, görünüşlerini değiştirerek. Bu değişikliğe denir URL yeniden yazma. Bir uygulama şeklidir URL eşleme veya içinde yönlendirme web uygulaması. Motor tipik olarak bir bileşenidir. Web sunucusu veya web uygulama çerçevesi. Yeniden yazılan URL'ler (bazen kısa, güzel veya süslü URL'ler, arama motoru dostu - SEF URL'ler veya salyangozlar ) web sayfalarına daha kısa ve daha alakalı görünen bağlantılar sağlamak için kullanılır. Teknik bir katman ekler soyutlama Bir web sayfası oluşturmak için kullanılan dosyalar ile dış dünyaya sunulan URL arasında.

Kullanım

Web siteleri dinamik içerik kullanarak sunucudan sayfalar oluşturan URL'leri kullanabilir sorgu dizesi parametreleri. Bunlar genellikle URL'lere benzeyecek şekilde yeniden yazılır. statik sayfalar ile bir sitede alt dizin hiyerarşisi. Örneğin, bir wiki sayfa şunlar olabilir:

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

ancak şu şekilde yeniden yazılabilir:

http://example.com/wiki/Page_title

Bir Blog her girişin tarihini kodlayan bir URL'ye sahip olabilir:

http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=19

Şu şekilde değiştirilebilir:

http://www.example.com/Blog/2006/12/19/

Bu, kullanıcının Aralık ayında mevcut olan tüm kayıtları görmek için URL'yi değiştirmesine de olanak tanır, yalnızca bir dizinde "yukarı" geziniyormuş gibi "19" gününü kodlayan metni kaldırarak:

http://www.example.com/Blog/2006/12/

Bir site, özel terimleri URL'den kendisine geçirebilir. arama motoru arama terimi olarak. Bu, kullanıcıların doğrudan tarayıcılarından arama yapmasına olanak tanır. Örneğin, tarayıcının URL'sine girildiği şekliyle konum çubuğu:

http://example.com/search term

Olacak urlencoded yapmadan önce tarayıcı tarafından HTTP isteği. Sunucu bunu şu şekilde yeniden yazabilir:

http://example.com/search.php?q=search%20term

Yararlar ve zararlar

URL yeniden yazmayı kullanmanın birkaç avantajı vardır:[1]

Ancak bazı dezavantajlar da olabilir; Bir kullanıcı yeni verileri almak için bir URL'yi değiştirmek isterse, URL yeniden yazma adlandırılmış değişkenlerin olmaması nedeniyle özel sorguların oluşturulmasını engelleyebilir. Örneğin, tarihi aşağıdaki formattan belirlemek zor olabilir:

http://www.example.com/Blog/06/04/02/

Bu durumda, sorgu değişkenleri ayı ve günü gösterdiğinden, orijinal sorgu dizesi daha kullanışlıdır:

http://www.example.com/Blog/Posts.php?Year=06&Month=04&Day=02

Web çerçeveleri

Çoğu web çerçevesi, doğrudan veya uzantı modülleri aracılığıyla URL yeniden yazımını içerir.

Bir yazılım geliştirme perspektif, URL yeniden yazma, kod modülerleştirmeye yardımcı olabilir ve kontrol akışı,[12] bunu modern web çerçevelerinin kullanışlı bir özelliği haline getiriyor.

Ayrıca bakınız

Notlar

  1. ^ Bunların çoğu, yalnızca varsayılan davranışı URL'leri eşlemek olan HTTP sunucuları için geçerlidir. dosya sistemi varlıklar (yani dosyalar ve dizinler); birçok HTTP gibi belirli ortamlar uygulama sunucusu platformlar, bunu alakasız hale getirin.
  2. ^ mod_rewrite belgeleri
  3. ^ Microsoft IIS için URL Yeniden Yazma uzantısı
  4. ^ "Dışarıdan İçe Yönlendiren Raylar". "Raylar üzerinde yakut. Alındı 25 Nisan 2014.
  5. ^ Django URLconf
  6. ^ Stripes 1.5'te URL'leri temizle
  7. ^ Kılavuzlar - Galaksiye Mojolicous kılavuzu. Mojolicious. Erişim tarihi: 2013-09-08.
  8. ^ Dokümanlar ModuRewrite - Lighttpd - lighty labs. Redmine.lighttpd.net. Erişim tarihi: 2013-09-08.
  9. ^ "ngx_http_rewrite_module - yeniden yaz". nginx.org. Alındı 25 Aralık 2014.
  10. ^ Murenin, Constantine A. (18 Şubat 2013). "Tamamen nginx.conf ile yazılmış dinamik bir web sitesi mi? Mdoc.su ile tanışın!". [email protected] (Mail listesi). Alındı 24 Aralık 2014.
  11. ^ URL TOOLKIT, Hiawatha web sunucusu kılavuzunun parçası
  12. ^ "Temiz URL". DocForge. Alındı 25 Nisan 2014.

Dış bağlantılar