Sun . 20 Jul 2020

URL yönlendirmesi

URL yönlendirme olarak da adlandırılan URL yeniden yönlendirmesi, bir web sayfasını birden fazla URL adresi altında kullanılabilir hale getirmek için bir World Wide Web tekniğidir Bir web tarayıcısı yeniden yönlendirilen bir URL'yi açmaya çalıştığında, farklı bir URL'ye sahip bir sayfa açılır Benzer şekilde, alan yönlendirme veya alan yönlendirme, wikipediacom ve wikipedianet otomatik olarak wikipediaorg URL yönlendirme yapıldığında olduğu gibi, bir URL alan adındaki tüm sayfaların farklı bir alana yönlendirilmesidir: URL kısaltma için; web sayfaları taşındığında kopuk bağlantıları önlemek; aynı sahibine ait birden fazla alan adının tek bir web sitesine başvurmasına izin vermek; bir web sitesine girip çıkmak için yönlendirmek; gizlilik koruması için; ve kimlik avı saldırıları gibi daha az zararsız amaçlar için
İçindekiler
1 Amaçlar
11 Benzer alan adları
12 Sayfaları yeni bir alana taşıma
13 Giden bağlantıları günlüğe kaydetme
14 Uzun süre kısa takma adlar URL'ler
15 Uzun veya değişen URL'ler için anlamlı, kalıcı takma adlar
16 Gönder / Yeniden Yönlendir / Al
17 Cihaz hedefleme ve coğrafi hedefleme
18 Arama motorlarını değiştirme
19 Ziyaretçileri değiştirme
110 Yönlendirmeyi kaldırma bilgileri
2 Uygulama
21 Manuel yönlendirme
22 HTTP durum kodları 3xx
221 Yönlendirme kodları ve özellikleri
222 Örnek 301 yönlendirmesi için HTTP yanıtı
223 Sunucu tarafı komut dosyası kullanma yeniden yönlendirme
224 Apache mod_rewrite
225 nginx yeniden yazma
23 Yenile Meta etiketi ve HTTP yenileme üstbilgisi
24 JavaScript yönlendirmeleri
25 Çerçeve yönlendirmeleri
26 Yönlendirme zincirleri
27 Yönlendirme döngüleri
3 Hizmetler
31 URL yönlendirme hizmetleri
311 Geçmiş
32 Yönlendiren maskeleme
4 Güvenlik sorunları
5 Ayrıca bkz. 6 Referanslar
7 Dış bağlantılar
Amaç es
URL yönlendirmesini kullanmanın birkaç nedeni vardır:
Benzer alan adları
Bir kullanıcı bir URL'yi yanlış yazabilir, örneğin, "examplecom" ve "exmaplecom" Kuruluşlar genellikle bu "yanlış yazılmış" alanları kaydedebilir ve yönlendirebilir examplecom ve examplenet adreslerinin her ikisi de tek bir alana veya exampleorg gibi bir web sayfasına yönlendirebilir. Bu teknik genellikle diğer üst düzey alan TLD'lerini aynı adla "ayırmak" veya yapmak için kullanılır "edu" veya "net" ifadelerinin daha tanınabilir bir "com" alanına yönlendirilmesi daha kolay
Sayfaları yeni bir alana taşıma
Web sayfaları üç nedenden dolayı yeni bir alana yönlendirilebilir:
bir site alan adını değiştirmek isteyebilir veya buna ihtiyaç duyabilir;
bir yazar kendi sayfalarını yeni bir alana taşıyabilir;
iki web sitesi
URL yönlendirmeleriyle, eski URL doğru konuma gönderilebilir Bu bağlantılar, bir değişiklik olduğunu fark etmeyen diğer sitelerden veya kullanıcıların tarayıcılarına kaydettiği yer imleri / sık kullanılanlar Aynı arama motorları için de geçerlidir Veritabanlarında daha eski / eski alan adlarına ve bağlantılarına sahiptirler ve arama kullanıcılarını bu eski URL'lere gönderir. URL, ziyaretçiler yine de doğru sayfada kalır. Ayrıca, bir sonraki arama motoru geçişinde, arama motoru daha yeni URL'yi algılamalı ve kullanmalıdır
Giden bağlantıları günlüğe kaydetme
Çoğu web sunucusunun erişim günlükleri hakkında ayrıntılı bilgi tutar ziyaretçilerin geldiği yer ve barındırılan siteye nasıl göz attıkları Ancak, ziyaretçilerin bıraktığı bağlantıların kaydını tutmazlar Bu, ziyaretçinin giden bir bağlantıyı tıkladığında ziyaretçinin tarayıcısının orijinal sunucuyla iletişim kurmasına gerek olmamasıdır. çeşitli şekillerde yakalanır Bir yol URL yönlendirmesini içerir Ziyaretçiyi doğrudan diğer siteye göndermek yerine, sitedeki bağlantılar orijinal web sitesinin etki alanındaki otomatik olarak yönlendiren bir URL'ye yönlendirebilir gerçek hedefe Bu teknik, orijinal web sitesinin sunucusuna yapılan ek talebin neden olduğu gecikmenin dezavantajını taşır. Bu eklenen istek, tam olarak hangi bağlantının takip edildiğini açığa çıkararak sunucu günlüğünde bir iz bırakacağından, bir gizlilik sorunu da olabilir [ 1] Aynı teknik, bazı kurumsal web siteleri tarafından, sonraki içeriğin başka bir sitede olduğunu ve bu nedenle şirkete bağlı olmadığını bildirmek için de kullanılır. Bu tür senaryolarda, uyarının görüntülenmesi ek bir gecikmeye neden olur
Kısa takma adlar uzun URL'ler
Ana makale: URL kısaltma
Web uygulamaları URL'lerinde genellikle veri hiyerarşilerini, komut yapılarını, işlem yollarını ve oturum bilgilerini temsil eden uzun açıklayıcı öznitelikler içerir Bu uygulama, estetik açıdan hoş olmayan ve hatırlanması zor bir URL ile sonuçlanır ve mikroblog sitelerinin boyut sınırlamalarına uymayabilir URL kısaltma hizmetleri bu soruna kırmızı ile bir çözüm sunar kullanıcıyı daha kısa bir URL'den daha uzun bir URL'ye yönlendirme
Uzun veya değişen URL'ler için anlamlı, kalıcı takma adlar
Ayrıca bkz: Kalıcı bağlantı, PURL ve Bağlantı çürümesi
Bazen bir sayfanın URL'si içerik olsa bile değişir aynı kalır, bu nedenle, URL yeniden yönlendirmesi yer imleri olan kullanıcılara yardımcı olabilir Bu, her sayfa yeniden adlandırıldığında Vikipedi'de rutin olarak yapılır
Gönder / Yönlendir / Al
Ana makale: Gönder / Yönlendir / Get
Gönder / Yönlendir / PRG'yi al, bazı yinelenen form gönderimlerini önleyen, kullanıcı aracıları kullanıcıları için daha sezgisel bir arayüz oluşturan bir web geliştirme tasarım modelidir
Cihaz hedefleme ve coğrafi hedefleme
Yeniden yönlendirmeler, cihaz hedefleme veya coğrafi hedefleme gibi hedefleme amaçları için etkili bir şekilde kullanılabilir. mobil istemcilerin yükselişiyle gittikçe önem kazanıyor Mobil kullanıcılara hizmet vermek için iki yaklaşım vardır: Web sitesini mobil web sitesi sürümüne yanıt verme veya yeniden yönlendirme yapma Mobil web sitesi sürümü sunulursa, mobil istemcilere sahip kullanıcılar otomatik olarak ilgili mobil içeriğe yönlendirildi Cihaz hedefleme için, istemci tarafı yönlendirmeleri veya önbelleğe alınamayan sunucu tarafı yönlendirmeleri kullanılır Coğrafi hedefleme, yerelleştirilmiş içerik sunma ve kullanıcıyı otomatik olarak istenen URL'nin yerelleştirilmiş bir sürümüne iletme yaklaşımıdır. birden fazla konum ve / veya dilde kitle Coğrafi hedefleme için genellikle sunucu tarafı yönlendirmeleri kullanılır, ancak gereksinimlere bağlı olarak istemci tarafı yönlendirmeleri de bir seçenek olabilir [2]
Arama motorlarını değiştirme
Yönlendirmeler manipüle etmek için kullanılmıştır sinsi yönlendirmeler veya URL ele geçirme gibi etik olmayan amaçlara sahip arama motorları Yanıltıcı yönlendirmelerin amacı, tek başına yeterli sıralama gücüne sahip olmayan veya yalnızca uzaktan veya hiç arama hedefi ile ilgili olmayan açılış sayfalarına arama trafiğini yönlendirmektir. Yaklaşım, arama yapan kişiyi sitenize yönlendirmek için gizli yönlendirmeler kullanacak bir dizi URL'ye sahip bir dizi arama terimi için bir sıralama gerektirir e hedef sayfası Bu yöntem, mobil cihazların yükselişi ile bir canlanma yaşadı ve URL hedeflemeyi hedefleyen cihaz ele geçirme, geçici bir yönlendirme için arama motorunun kullanımının niteliğinden yararlanan bir alan dışı yönlendirme tekniğidir [3]. Sıralama değerini yeniden yönlendirmeyi başlatan URL'ye mi yoksa yönlendirme hedef URL'sine mi atayacaklarına karar vermeleri gerekir. Yeniden yönlendirmeyi başlatan URL, yeniden yönlendirme geçici bir niteliği gösterdiğinden, arama sonuçlarında görünmeye devam edebilir iyi sıralama URL'lerine geçici yönlendirmeler uygulayarak bu davranışı kullanmak mümkündür, arama sonuçlarında orijinal URL'nin yönlendirmeyi başlatan URL ile değiştirilmesine yol açar, bu nedenle sıralamayı "çalmak" için kullanılır Bu yöntem genellikle yeniden yönlendirmek için gizli yönlendirmelerle birleştirilmiştir. arama sonuçlarından bir hedef sayfaya kullanıcı akışını hedefleme Arama motorları bu tür mani algılamak için verimli teknolojiler geliştirdi pulative yaklaşımlar Büyük arama motorları genellikle bu gibi teknikler uygulayarak yakalanan sitelere sert sıralama cezaları uygular [4]
Ziyaretçileri manipüle etmek
URL yönlendirmesi bazen ziyaretçileri hangi web sitesi hakkında karıştırdıklarına yönelik kimlik avı saldırılarının bir parçası olarak kullanılır ziyaret [5] Modern tarayıcılar adres çubuğunda her zaman gerçek URL'yi gösterdiğinden, tehdit azalır. Ancak, yönlendirmeler sizi başka şekillerde saldırmaya çalışacak sitelere de götürebilir. Örneğin, bir yönlendirme kullanıcıyı virüsten koruma yazılımı indirmeleri için kandırmaya çalışacak ve ironik bir şekilde bunun yerine bir tür truva atı yükleyecek site
Yönlendirme bilgilerini kaldırma
Bir bağlantı tıklandığında, tarayıcı HTTP isteğinde yönlendirme adı verilen bir alan gönderir. bağlantının kaynağını gösterir Bu alan, geçerli web sayfasının URL'si ile doldurulur ve harici sayfalara hizmet veren sunucunun günlüklerinde bulunur. Örneğin RL'ler, http: // companycom / ürünümüzün bir sonraki sürümü için planlar, yönlendirme URL'sinin kuruluştan ayrılması arzu edilmez. Yönlendirme gizlemesi gerçekleştiren bir yönlendirme sayfası herkese gömülebilir harici URL'ler, örneğin http: // externalsitecom / page öğesini http: // redirectcompanycom / http: // externalsitecom / page biçimine dönüştüren Bu teknik, aynı zamanda, referans URL'sinden oturum kimliği gibi potansiyel olarak hassas diğer bilgileri de ortadan kaldırır ve son kullanıcıya başka bir siteye açık bir ağ geçidi geçtiklerini belirterek kimlik avı yapma şansı
Uygulama
Tarayıcıya birkaç farklı yanıt türü yeniden yönlendirmeye neden olur Bunlar, HTTP üstbilgilerini veya HTML içeriğini etkileyip etkilememelerine bağlı olarak değişir. kullanılan teknikler tipik olarak onu uygulayan kişinin rolüne ve sistemin farklı bölümlerine erişimine bağlıdır. Örneğin, üstbilgiler üzerinde kontrolü olmayan bir web yazarı bir Yenile meta etiketi kullanabilirken bir web sunucusu yöneticisi yeniden yönlendirmesi kullanabilir bir sitedeki tüm sayfaları etkilemenin sunucu yapılandırmasını kullanması daha olasıdır
Manuel yönlendirme
En basit teknik, ziyaretçiden genellikle aşağıdaki gibi bir HTML bağlantısı kullanarak yeni sayfanın bağlantısını izlemesini istemektir:
Lütfen takip edin & lt; a href = "http: // wwwexamplecom /" & gt; bu bağlantı Bu yöntem genellikle bir geri dönüş olarak kullanılır - tarayıcı otomatik yönlendirmeyi desteklemiyorsa ziyaretçi yine de bağlantıyı izleyerek hedef belgeyi oluşturma
HTTP durum kodları 3xx
World Wide Web tarafından kullanılan HTTP protokolünde yönlendirme, tarayıcının farklı bir sayfa görüntülemesine neden olan durum kodu 3 ile başlayan bir yanıttır. bir istemci bir yönlendirmeyle karşılaşırsa, yönlendirmeyi nasıl ele alacağına dair bir dizi karar vermesi gerekir Yönlendirmenin amacını, önbelleğe almayı nasıl ele alacağını ve sonraki istek için hangi istek yöntemini kullanacağını anlamak için istemciler tarafından farklı durum kodları kullanılır. > HTTP / 11, RFC 7231 yönlendirmesi için çeşitli durum kodları tanımlar:
300 çoktan seçmeli s örneğin farklı diller sunuyoruz
301 kalıcı olarak taşındı
302 aslen HTTP / 10 içinde "geçici yönlendirme" bulundu ve yaygın olarak CGI betikleri için kullanıldı; HTTP / 11'de 303 ve 307 ile değiştirildi, ancak geriye dönük uyumluluk için korundu
303 diğer istek, orijinal istek POST olsa bile yeni URL'ye bir GET isteği gönderir
307 geçici yönlendirme, tarayıcının bir GET veya POST isteği
308 kalıcı yönlendirme, tarayıcının bir GET veya POST isteğini yeniden göndermesi için yeni bir URL sağlar
Durum kodlarını ve özelliklerini yeniden yönlendir
HTTP Durum Kodu
HTTP Sürümü
Geçici / Kalıcı
Önbellek
İstek Yöntemi Sonraki İstek
301
HTTP / 10
Kalıcı
evet
GET / POST değişebilir
302
HTTP / 10
Geçici
varsayılan olarak değil
GET / POST değişebilir
303
HTTP / 11
Geçici
asla
her zaman GET
307
HTTP / 11
Geçici
varsayılan olarak değiştirilemez
308
HTTP / 11
Varsayılan olarak kalıcı

değiştirilemez
[6]
Tüm bunlar durum kodları, Konum: HTTP yanıtının üstbilgisinde Konum yönlendirme hedefinin URL'sinin verilmesini gerektirir. 300 çoklu seçenek kullanılabilir y iletinin gövdesindeki tüm seçenekleri listeler ve Konum'da varsayılan seçeneği gösterir: başlık
Durum kodları 304 değiştirilmedi ve 305 proxy kullan, yönlendirmeler yapmıyor
301 yönlendirmesi için örnek HTTP yanıtı
HTTP 301 "kalıcı olarak taşındı" yönlendirmesiyle yanıt şu şekilde görünür:
HTTP / 11 301 Kalıcı Olarak Taşındı
Konum: http: // wwwexampleorg /
Content-Type: text / html
Content-Length: 174
& lt; hTML ve gt;
& lt; head & gt;
& lt; title & gt; taşındı ve m / başlık ve gt;
ve m / head & gt;
& lt; body & gt;
& lt; h1 & gt; taşındı ve lT ; / h1 & gt;
& lt; p & gt; Bu sayfa & lt; a href = "http: // wwwexampleorg /" & gt; http: // wwwexampleorg / & lt; / a> & lt; / p & gt;
& lt; / body & gt;
& lt; / html & gt;
Yeniden yönlendirme için sunucu tarafı komut dosyası kullanma
HTML içeriği üreten web yazarları genellikle HTTP üstbilgileri kullanarak yönlendirmeler oluşturamaz, çünkü bunlar web sunucusu programı tarafından otomatik olarak oluşturulur HTML dosyası sunarken Aynı durum CGI komut dosyaları yazan programcılar için bile geçerlidir, ancak bazı sunucular Örneğin "ayrıştırılmamış üstbilgileri" etkinleştirerek özel üstbilgiler eklemek için düşük komut dosyaları Bir komut dosyası "Konum:" üstbilgi satırı çıkarsa birçok web sunucusu 3xx durum kodu oluşturur. Örneğin PHP'de "üstbilgi" işlevi kullanılabilir :
header'HTTP / 11 301 Kalıcı Olarak Taşındı ';
header'Location: http: // wwwexamplecom /';
exit;
Önbelleği önlemek için daha fazla başlık gerekebilir [7] Programcı üstbilgilerin gövdeden önce çıkmasını sağlamalıdır Bu, kod aracılığıyla doğal denetim akışına kolayca uymayabilir Bu konuda yardımcı olmak için, sunucu tarafı içerik oluşturma ile ilgili bazı çerçeveler gövde verilerini arabelleğe alabilir ASP komut dosyası dilinde, answerebuffer = true ve Responseredirect "http: // wwwexamplecom /" HTTP / 11 kullanılarak da göreceli bir URI referansı veya mutlak bir URI referansı kullanılabilir [8] URI referansı göreceli ise istemci gerekli mutlak URI referansını hesaplar 3986'da tanımlanan kurallara uyma [9]
Apache mod_rewrite
Apache HTTP Sunucu mod_alias uzantısı belirli istekleri yeniden yönlendirmek için kullanılabilir Tipik yapılandırma yönergeleri aşağıdaki gibidir:
Kalıcı / oldpagehtml yönlendirme http: // wwwexamplecom / newpagehtml
301 / oldpagehtml yönlendirme http: // wwwexamplecom / newpagehtml
Daha esnek için URL yeniden yazma ve yeniden yönlendirme, Apache mod_rewrite, istekleri standart bir alan adına yönlendirmek için kullanılabilir:
RewriteEngine on
RewriteCond% ^ [^:] + oldsite example com : [0-9 ] $ [NC]
RewriteRule ^ $ http: // newsiteexamplenet / $ 1 [R = 301, L]
Bu yapılandırma, sunucu yapılandırma dosyaları aracılığıyla sunucudaki bir veya tüm sitelere veya tek bir siteye uygulanabilir bir htaccess dosyası aracılığıyla içerik dizini
nginx rewrite
Nginx, gelişmiş URL işleme ve hatta web sayfası oluşturma gibi bir gelişmiş http rewrite modülüne sahiptir. yeniden yazma modülünün kullanımı mdocsu'dur ve belirleyici bir URL kısaltma hizmetini tamamen yalnızca nginx yapılandırma dilinin yardımı [11] [12]
Örneğin, / DragonFlyBSD / HAMMER5 için bir istek gelirse, ilk önce yalnızca aşağıdaki yeniden yazma yönergesi ile / d / HAMMER5'e yönlendirilirdi dahili durumu etkileyen, henüz istemciye herhangi bir HTTP yanıtı gönderilmeden ve daha sonra ikinci yeniden yazma yönergesiyle, 302 Bulunan durum koduna sahip bir HTTP yanıtı, web dış cgi betiğine gerçekten yönlendirmek için istemciye gönderilir. man: [13]
location / DragonFly
location / d
Meta etiketi ve HTTP yenileme başlığını yenile
Netscape, belirli bir süre sonra sayfayı yenileyen meta yenileme özelliğini tanıttı Bu bir bir sayfayı başka bir sayfayla değiştirmek için yeni URL Bu, çoğu web tarayıcısı tarafından desteklenir [14] [15] Sıfır saniyelik bir zaman aşımı anında yönlendirmeyi etkiler Bu, Google tarafından 301 kalıcı yeniden yönlendirme gibi ele alınır ve PageRank'ın hedef sayfaya aktarılmasına izin verir [ 16]
Bu basit bir HTML do örneği Bu tekniği kullanan bir işaret:

gt> meta http-equiv = "Yenile" content = "0; url = http: // wwwexamplecom / "/ & gt;
& lt;
& quot; gövde>
& lt; Lütfen takip edin & a; href =" http: // wwwexamplecom / "& gt ; bu bağlantı / p>


Meta etiketi belgenin içinde bulunduğundan bu teknik web yazarları tarafından kullanılabilir. meta etiketi HTML dosyasının "head" bölümüne yerleştirilmelidir Bu örnekteki "0" sayısı, birkaç saniyelik bir gecikme sağlamak için başka bir sayı ile değiştirilebilir. "body" bölümündeki çapa, tarayıcıları olan kullanıcılar içindir bu özelliği desteklemiyor
Bir HTTP yenileme üstbilgisi ile aynı etki elde edilebilir:
HTTP / 11 200 ok
Yenile: 0; url = http: // wwwexamplecom /
İçerik türü: text / html
İçerik uzunluğu: 78
Lütfen & lt; a href = "http: // wwwexamplecom /" & gt; bu bağlantıyı takip edin
Bu yanıtı CGI programları tarafından oluşturmak daha kolaydır, çünkü varsayılan durum kodunu değiştirmek gerekmez
İşte bu yönlendirmeyi etkileyen basit bir CGI programı:
#! / usr / bin / per l
yazdır "Yenile: 0; url = http: // wwwexamplecom / r n ";
yazdır" İçerik türü: metin / html r n ";
yazdır" r n ";
yazdır" Lütfen takip edin & lt; a href = "http: // wwwexamplecom / " & gt; bu bağlantı & lt; / a & gt ;! "
Not: Genellikle, HTTP sunucusu durum satırını ve İçerik uzunluğu başlığını otomatik olarak ekler
W3C, orijinal veya yeni kaynak hakkında hiçbir bilgiyi tarayıcıya veya arama motoruna iletmediği için meta yenilemenin kullanılmasını engeller W3C'nin Web İçeriği Erişilebilirlik Yönergeleri 74, çoğu web tarayıcısının yaptığı gibi otomatik yenileme sayfalarının oluşturulmasını engeller kullanıcının yenileme hızını devre dışı bırakmasına veya kontrol etmesine izin verme Sorunla ilgili yazdıkları bazı makaleler arasında W3C Web İçeriği Erişilebilirlik Yönergeleri 10: Zamana duyarlı içerik değişikliklerinin kullanıcı tarafından kontrol edilmesini sağlayın, Standart yönlendirmeleri kullan: geri düğmesini kırmayın! İçeriği Erişilebilirlik Yönergeleri için Temel ve Temel Teknikler 10 bölüm 7
JavaScript yeniden yönlendirmeleri
JavaScript, pencere konumunu ayarlayarak yeniden yönlendirmeye neden olabilir özniteliği, örneğin:
windowlocation = 'http: // wwwexamplecom /'
Normalde JavaScript, yeniden yönlendirici sitesinin URL'sini tarayıcı geçmişine iter Kullanıcılar aşağıdaki düğmeye basarak yönlendirme döngülerine neden olabilir Aşağıdaki komutla bunu engelleyebilirsiniz davranış türü [17]
windowlocationreplace'http: // wwwexamplecom / '
Bununla birlikte, güvenlik nedeniyle HTTP üstbilgileri veya yenileme meta etiketi tercih edilebilir, çünkü JavaScript bazı tarayıcılar ve birçok web tarayıcısı tarafından yürütülmez
Çerçeve yönlendirmeleri
Satır içi çerçeve oluşturularak biraz farklı bir efekt elde edilebilir:

Random Posts

The San Francisco Examiner

The San Francisco Examiner

The San Francisco Examiner is a longtime daily newspaper distributed in and around San Francisco, Ca...
Frederator Films

Frederator Films

Frederator Films is an animation studio founded by Fred Seibert as part of Frederator Studios, with ...
John Hasbrouck Van Vleck

John Hasbrouck Van Vleck

John Hasbrouck Van Vleck March 13, 1899 – October 27, 1980 was an American physicist and mathematici...
Christian Lacroix

Christian Lacroix

Christian Marie Marc Lacroix French pronunciation: ​kʁistjɑ̃ lakʁwa; born 16 May 1951 is a Fren...