ucp php yönlendirme erkek açıklaması. PHP harici bağlantıları yeniden yönlendirir. Gecikme ve geri sayım sayacı ile yeniden yönlendirin. Yönlendirme bağlantılarını gizle
başlık () ham bir HTTP başlığı göndermek için kullanılır. HTTP başlıkları hakkında daha fazla bilgi için »HTTP / 1.1 spesifikasyonuna bakın.
Bunu hatırla başlık () normal HTML etiketleri, bir dosyadaki boş satırlar veya PHP'den herhangi bir gerçek çıktı gönderilmeden önce çağrılmalıdır. İle kod okumak çok yaygın bir hatadır. Dahil etmek, veya gerekmek, işlevler veya başka bir dosya erişim işlevi vardır ve daha önce çıktısı alınan boşluklar veya boş satırlar vardır. başlık () denir. Tek bir PHP/HTML dosyası kullanırken de aynı sorun var.
/ * Bu bir hata verecektir. çıktıyı not edin * yukarıdaki, üstbilgi () çağrısından önce * / başlık (); çıkış; ?>
parametreler
Başlık dizisi.
İki özel durum başlık çağrısı vardır. Birincisi, " dizesiyle başlayan bir başlıktır. HTTP /"(durum önemli değil), gönderilecek HTTP durum kodunu bulmak için kullanılacaktır. Örneğin, Apache'yi eksik dosya isteklerini işlemek için bir PHP betiği kullanacak şekilde yapılandırdıysanız Hata Belgesi yönergesi), betiğinizin uygun durum kodunu oluşturduğundan emin olmak isteyebilirsiniz.
başlık ("HTTP / 1.0 404 Bulunamadı"); ?>
İkinci özel durum "Konum:" başlığıdır. Bu başlığı yalnızca tarayıcıya geri göndermekle kalmaz, aynı zamanda bir YÖNLENDİRME(302) tarayıcıya durum kodu 201
veya bir 3xx durum kodu zaten ayarlanmış.
İsteğe bağlı değiştirme parametresi, başlığın önceki benzer bir üstbilgiyi mi değiştireceğini yoksa aynı türde ikinci bir üstbilgi mi ekleyeceğini belirtir. Varsayılan olarak yerini alacaktır, ancak geçerseniz YANLIŞ ikinci argüman olarak aynı türden birden çok başlığı zorlayabilirsiniz. Örneğin:
HTTP yanıt kodunu belirtilen değere zorlar. Bu parametrenin yalnızca başlık boş değilse bir etkisi olduğunu unutmayın.
Dönüş değerleri
Hiçbir değer döndürülmez.
Değişiklik günlüğü
Sürüm
Açıklama
5.1.2
Bu işlev, başlık ekleme saldırılarına karşı koruma olarak artık birden fazla başlığın aynı anda gönderilmesini önler.
Örnekler
Örnek 1 İndirme iletişim kutusu
Kullanıcıdan, oluşturduğunuz bir PDF dosyası gibi, gönderdiğiniz verileri kaydetmesinin istenmesini istiyorsanız, önerilen bir dosya adı sağlamak ve tarayıcıyı kaydetme iletişim kutusunu görüntülemeye zorlamak için »İçerik-Disposition başlığını kullanabilirsiniz.
// Bir PDF çıktısı alacağız başlık ( "İçerik Türü: uygulama / pdf");
// download.pdf olarak adlandırılacak başlık ( "Content-Disposition: ek; dosya adı =" indirilen.pdf "");
// PDF kaynağı orijinal.pdf dosyasında readfile ("orijinal.pdf"); ?>
Örnek # 2 Önbelleğe alma yönergeleri
PHP komut dosyaları genellikle istemci tarayıcısı tarafından önbelleğe alınmaması gereken dinamik içerik veya sunucu ile istemci tarayıcısı arasındaki herhangi bir proxy önbelleği oluşturur. Birçok proxy ve istemci, aşağıdakilerle önbelleğe almayı devre dışı bırakmaya zorlanabilir:
başlık ( "Önbellek Kontrolü: önbellek yok, yeniden doğrulanmalıdır"); //HTTP / 1.1 başlık ( "Son kullanma tarihi: Cts, 26 Tem 1997 05:00:00 GMT"); // Geçmişteki tarih ?>
Yukarıdaki tüm başlıkların çıktısını almasanız bile sayfalarınızın "önbelleğe alınmadığını" görebilirsiniz. Kullanıcıların varsayılan önbelleğe alma davranışını değiştiren tarayıcıları için ayarlayabilecekleri bir dizi seçenek vardır. Yukarıdaki başlıkları göndererek, aksi takdirde komut dosyanızın çıktısının önbelleğe alınmasına neden olabilecek tüm ayarları geçersiz kılmalısınız.
“HTTP 1.1 spesifikasyonlarının (IETF RFC 2616) eski bir sürümü, yeniden yönlendirme için tam bir mutlak URI gerektiriyordu. IETF HTTP çalışma grubu, en popüler web tarayıcılarının göreli bir URL'nin geçişini tolere ettiğini ve sonuç olarak, güncellenmiş HTTP 1.1 spesifikasyonlarının (IETF RFC 7231) orijinal kısıtlamayı gevşeterek Konum başlıklarında göreceli URL'lerin kullanımına izin verdiğini buldu.
Geçici çözüm: bu başlıkları göndermeyin.
Ayrıca, IE 5, 6, 7 ve 8 sürümlerinin zaten sıkıştırılmış dosyaları çift sıkıştırdığını ve işlemi doğru şekilde tersine çevirmediğini unutmayın, bu nedenle ZIP dosyaları ve benzerleri indirme sırasında bozulur.
Çözüm: IE'nin bu belirli sürümleri için sıkıştırmayı devre dışı bırakın (metin / html'nin ötesinde), örneğin, Apache "s" BrowserMatch "direktifini kullanarak. Aşağıdaki örnek, tüm IE sürümlerinde sıkıştırmayı devre dışı bırakır:
BrowserMatch ". * MSIE. *" Gzip-only-text / html
4. Göreli URI'lere izin VERİLMEZ
yanlış: Konum: /something.php?a=1 yanlış: Yer:? a = 1
Proxy sunucusunu ve http istemcilerini daha mutlu edecek.
15 yıl önce
Eğer kullanmadıysanız, HTTP Response 204 çok kullanışlı olabilir. 204, sunucuya bu isteği derhal sonlandırmasını söyler. Bu, bir javascript (veya benzeri) istemci tarafı işlevinin, sunucu tarafı işlevini yenilemeden yürütmesini istiyorsanız yararlıdır. veya mevcut web sayfasını değiştirmek.Veritabanını güncellemek, global değişkenleri ayarlamak vb. için harika.
Başlık ("durum: 204"); (veya diğer arama) başlık ("HTTP / 1.0 204 Yanıt Yok");
15 yıl önce
İfadeden önce session_write_close () çağrısı
başlık ("Konum: URL"); çıkış (); ?>
yeniden yönlendirmeye geçmeden önce oturumun güncellendiğinden emin olmak istiyorsanız önerilir.
Yeniden yönlendirme tarafından erişilen komut dosyasının, önceki komut dosyasının güncelleme zamanı olmadığı için "oturumu doğru şekilde yüklemediği" bir durumla karşılaştık (bir veritabanı işleyicisi kullandık).
9 ay önce
// "Konum" anahtar kelimesi ile iki nokta üst üste işareti arasına boşluk eklemenin Dahili Sunucu Hatasına neden olduğuna dikkat edin
// Bu satır hataya neden oluyor 7 başlık ("Konum: index.php ve denetleyici = ürün ve eylem = dizin");
Başlık çağrısı, acemi php kullanıcıları için yanıltıcı olabilir. "başlık çağrısı" belirtildiğinde, "başlık ()" işlevinin kendisine değil, dosyanın en soldaki en üst konumuna atıfta bulunur. "
10 yıl önce
İşte bir dosyayı akışa almak ve baytlar üzerinde bir xor işlemiyle ve bir anahtarla şifrelemek için yazdığım bir php betiği:
Şifreleme çok iyi çalışıyor ancak hız 2 azaldı, şimdi 520KiB/s. Kullanıcıdan şimdi bir md5 şifresi istenir (doğrudan kodda tutmak yerine). Fransızca'da bir kısım var çünkü benim ana dilim, bu yüzden onu istediğin gibi değiştir.
// Dosyaları akışa alın ve verileri anında şifreleyin
// Ayarlar // - Akış için dosya $ dosya = "FILE_out"; // - Okuma arabelleği $ arabellek uzunluğu = 3840; // - Onaltılık tuşlayın // $ keychar = "9cdfb439c7876e703e307864c9167a15";
// İşlev: Bir dizedeki altıgen anahtarı ikiliye dönüştürme işlev hex2bin ($ h) ( if (! is_string ($ h)) null döndürür; $r = dizi(); için ($ a = 0; ($ a * 2)<
strlen
($h
);
$a
++) {
$ ta = onaltılık ($ h [2 * $ a]); $ tb = onaltılık ($ h [(2 * $ a + 1)]); $ r [$ a] = (int) (($ ta<<
4
) +
$tb
);
}
$ r döndür; }
// auth başlıklarını gönderme işlevi function askPassword ($ metin = "Şifreyi girin") ( başlık ( "WWW-Kimlik Doğrulama: Temel bölge =" "... utf8_decode ($ metin). "" "); başlık ("HTTP / 1.0 401 Yetkisiz"); dönüş 1; }
// İlk çalıştırmada anahtar sorulur if (! isset ($ _ SERVER ["PHP_AUTH_PW"])) ( askPassword(); Eko "Une clé est nécessaire! "
;
çıkış; }
// Anahtarı hex olarak al $ keychar = $ _SERVER ["PHP_AUTH_PW"];
// Anahtarı dönüştür ve anahtarın boyutunu ayarla $ anahtar = hex2bin ($ anahtar karakter); $ anahtar uzunluğu = sayı ($ anahtar); // Teste si la clé est valide en hex if ($ anahtar == "" || $ anahtar uzunluğu<=
4
) {
askPassword ("Yanlış anlama!"); // echo "Yanlış! ";
çıkış (); }
// Teste si la clé est de longueur d "une puissance de 2 if (($ anahtar uzunluğu% 2)! = 0) ( askParola ( "Clé de longueur yanlış (çoklu de 2 benzersiz)");
// echo "Clé de longueur yanlış (puissance de 2 benzersiz) ";
çıkış (); }
// Başlıklar başlık ( "İçerik Türü: uygulama / sekizli akış;");
başlık ( "İçerik-Aktarım-Kodlama: ikili");
başlık ("İçerik-Uzunluk:". dosya boyutu ($ dosyası). ";"); başlık ("dosya adı = \" ". $ dosya." \ ";"); yıkama (); // bu gerçekten önemli değil.
// Dosyayı salt okunur olarak açma $ fp = fopen ($ dosya, "r"); while (! feof ($ fps)) {
// Dosyanın arabellek boyutunu oku $ arabellek = korku ($ fp, $ arabellek uzunluğu); $ j = 0; için ($ ben = 0; $ ben<
$bufferlength
;
$i
++) {
// Anahtar, tüm dosyayı şifrelemek için döngüde okunur if ($ i% $ anahtar uzunluğu == 0) ( $ j = 0; }
// Şifrelenecek anahtar ve dosya arasında bir xor işlemi uygulayın // Bu işlem çok fazla CPU zamanı tüketiyor (Sunucumda 1MiB/s hızında akış; Intel E2180) $ tmp = paket ("C", $ anahtarı [$ j]); $ arabellekE = ($ arabellek [$ i] ^ $ tmp); //<==== Le fameux XOR
// Şifrelenmiş verileri gönder yankı $ arabellekE; // Belleği temizle $ arabellekE = ""; $ j++; }
$ arabellek = ""; yıkama (); // büyük indirmeler için bu gereklidir /*
fclose ($ fps); çıkış (); //*/
}
// Dosyayı kapatın ve "bitti" fclose ($ fps);
Bu makale, harici bağlantıları yeniden yönlendirmek için bir php betiği oluşturmaya odaklanacaktır. Normal bir php yönlendirmesi ve gecikmeli yönlendirme oluşturma örneklerini ele alacağız. Bu ayrıca JavaScript + JQuery'de bir geri sayım sayacı oluşturma sürecini ve yönlendirme bağlantılarının nasıl gizleneceğini de kapsayacaktır. Tüm örnekleri inceledikten sonra, komut dosyası dosyalarını indirme bağlantıları ve yönlendirme komut dosyasını yükleme ve kullanma hakkında ayrıntılı bir kılavuz sağlanacaktır. Son olarak, WordPress düzenleyicisine yönlendirme düğmeleri ekleme kodunu bulacaksınız.
Bu scripti oluşturma fikri, harici linklerin indekslenmesinden sorumlu olan WpNoRef eklentisini devre dışı bıraktıktan sonra aklıma geldi. Zaten "" makalesinde bahsetmiştim. Eklentinin özü, tüm harici bağlantıları etiketlere yerleştirmekti. ve bunlara rel = "nofollow" niteliğini ekleyerek.
Zaten anladığınız gibi, eklentiyi devre dışı bıraktıktan sonra, tüm harici bağlantılar indekslemeye açık hale geldi. Bu bağlamda, onları manuel olarak değiştirdim ve aşağıdaki gibi uygulanan php üzerinden bir yönlendirme yaptım.
Aşağıdaki kodu içeren, örneğin redirect.php gibi özel bir dosya oluşturuldu.
Gördüğünüz gibi, bu yöntem çok uygun değil ve çok önemli bir dezavantajı var - her bağlantı için ayrı bir dosya oluşturmanız ve barındırmaya kopyalamanız gerekiyor. Bir süre bu şekilde çalıştıktan sonra, bir şeyleri değiştirme zamanının geldiğine karar verdim ve betiğin ayrı dosyalar oluşturulmasını gerektirmeyen daha esnek bir versiyonunu yazdım.
Çalışmasının özü, gerekli parametreleri kullanarak yürütülebilir dosyaya aktarmaktır. Ardından, komut dosyası alınan verileri işler ve kullanıcıları istenen sayfaya yönlendirir. Bu durumda kod aşağıdaki gibidir.
If (isset ($ _ GET ["url"])) ($ url = $ _GET ["url"];) if (! Isset ($ url)) ($ url = "https: // arşiv.! Preg_match ( " # (http? | ftp): // \ S + [^ \ s.,>
Geçersiz istek biçimi! URL'yi kontrol edin! ");) Başlık (" Konum: $ url "); çıkış ();
Şimdi yukarıdaki yönlendirme koduna hızlıca bir göz atalım.
Öncelikle GET metodunun ilettiği değişkenin var olup olmadığını kontrol ediyoruz. Eğer öyleyse, onu normal bir değişkene dönüştürün. Değilse, başlangıç değerini $ url değişkenine atarız.
Şimdi php yönlendirme komut dosyamızın yeteneklerini biraz genişletelim ve istek üzerine yönlendirme bağlantılarını gizleme ve tüm bağlantı listesini ekranda görüntüleme özelliğini ekleyelim.
Yönlendirme bağlantılarını gizleme özelliğine sahip Php yönlendirme komut dosyası
Yönlendirme bağlantılarını aşağıdaki gibi gizleyeceğiz.
If ($ key == "1") (foreach ($ partner olarak $ key =>) "; çıkış ();)
Dizi değerlerinin çıktısı tamamlandıktan sonra scripti sonlandırmayı unutmayınız. Şimdi, yönlendirme yerine anahtarlı bir bağlantıya tıkladığınızda, tüm bağlı kuruluş bağlantılarının ve anahtarlarının değerlerini içeren bir sayfa görüntüleyeceğiz.
Pekala, şimdi tüm bu kod parçalarını bir araya getirelim ve bütün php yönlendirme betiğinin koduna bütünüyle bakalım.
Bu nedenle, bir php yönlendirme komut dosyası oluşturma sürecini gözden geçirdik. Şimdi ortaya çıkan kodu örneğin go.php gibi bir dosyaya kaydedip sitedeki diğer dosyalara barındırmaya kopyalıyoruz. Bu dosyayı sitenin kök dizinine kopyalarsanız, bir yönlendirme oluşturmak için bu yapıyı kullanmanız gerekecektir.
Http://mysite.com/go.php?url=http://site.com
Ayrıca go.php yönlendirme dosyasını arama motorları tarafından indekslemeden kapatmayı unutmayın. Bunun için sitenin kök dizininde bulunan robots.txt dosyasına aşağıdaki satırı ekleyin.
İzin verme: /go.php
Alternatif olarak, komut dosyaları için ayrı bir dizin oluşturabilir ve go.php dosyasını oraya yerleştirebilir ve ardından dizini robots.txt dosyasında kapatabilirsiniz.
İzin verme: / uzantı
Uzantı, sitenin kökünde bulunan komut dosyaları klasörüdür.
Şimdi JavaScript + JQuery'de gecikmeli ve geri sayım sayacı olan bir php yönlendirme komut dosyasının nasıl oluşturulacağına bakalım.
gecikme ve geri sayım sayacı ile PHP yönlendirme komut dosyası
Gecikmeli yönlendirme komut dosyasının kodu, birkaç satır kod dışında, önceki sürümden hiçbir şekilde farklı olmayacaktır. Bu durumda, kod değiştirilecektir.
Başlık ("Konum: $ url");
Başlık ("Yenile: 12; URL = $ url");
burada Yenile: 12, 12 saniyelik bir gecikmeden sorumludur.
Ayrıca yönlendirme sayfamıza bir geri sayım sayacı ekleyeceğiz. Geri sayım sayacı kodu aşağıdaki gibi görünecektir.
10
Burada timetogo = 10, ilk geri sayım zamanıdır.
Bu kod çok basit ve sezgisel, bu yüzden onu analiz etmeyeceğim, ancak makalenin genel boyutunu küçültmek için doğrudan php yönlendirme komut dosyasının tam koduna gideceğim.
Böylece, gecikmeli php yönlendirme betiğinin tam kodu şöyle görünecektir.
Yukarıdaki koddan da göreceğiniz gibi geri sayım sayacının çalışması için sayfaya jQuery kütüphanesini bağlamamız gerekiyor. Bunu yapmak için, jQuery sitesinden ilgili dosyayı indirmemiz veya arşivde olacak olanı, makalenin sonunda bulabileceğiniz indirme bağlantısını kaynaklarla birlikte kullanmamız gerekiyor.
Bu nedenle, basit bir php yönlendirmesi oluşturma sürecini gözden geçirdik ve bir gecikme ve bir geri sayım sayacı ile yeniden yönlendirin. Şimdi son kısma geçelim ve Wordrpess editörüne yönlendirme butonları ekleme koduna bakalım.
Bir önceki makalede "" editöre yeni düğmeler ekleme sürecini zaten incelediğimizden, şimdi kurulum talimatları olmadan sadece düğme kodunu vereceğim. Talimatın kendisini, bağlantısı hemen yukarıda bulunan ilgili makalede bulabilirsiniz.
WordPress düzenleyicisine yönlendirme düğmesi ekleme kodu aşağıdaki gibidir.
T.Buttons = new edButton (ad + "_go", "Go.php", "https: //archive..php? Url =", "", "", -1);
Zaten anladığınız gibi, kodu sitenize eklemeden önce, go.php dosyasının bağlantısını kendinize göre değiştirmeniz gerekecektir. Bundan sonra, kodu quicktags.js dosyasına ekleyin ve sonucu kaydedin, ardından yeni düğmeyi kullanmaya başlayabilirsiniz.
Düğmenin kullanımı çok basittir. Bunu yapmak için düzenleyicide HTML moduna geçin, harici bağlantıyı bulun, ardından onu seçin ve düzenleyicideki düğmeye tıklayın. Sonuç olarak, xref böyle görünecektir.
Https: //archive..php?Url = http: //site.com
https: //archive..php, go.php dosyasının yoludur.
Bu, bu makaleyi sonuçlandırıyor. Malzemeyi yeterince ayrıntılı olarak açıkladım ve yönlendirme komut dosyasının çalışmasıyla ilgili herhangi bir sorun yaşamamalısınız. Aniden zorluklar ortaya çıkarsa veya sorular ortaya çıkarsa, onlara her zaman makalenin yorumlarında sorabilirsiniz.
Ve neredeyse unutuyordum. PHP yönlendirme komut dosyalarını aşağıdaki bağlantıdan indirebilirsiniz -.
Bu kadar. Şantiyelerde iyi şanslar ve başarılar.
Bu sayfada hızlı gezinme:
Bir komut dosyası yazmaya ve PHP'yi yeniden yönlendirmeye karar verirseniz, bu adımın avantajları açıktır: PHP sunucu yönelimli bir komut dosyası dilidir; yeniden yönlendirme, ziyaretçilerin tarayıcısında değil, sunucudaki bir komut dosyası aracılığıyla yapılacaktır. Bazı yönlendirmeler istemci tarafında yapılabilir - bir js yönlendirmesi aracılığıyla (yani bir JavaScript yönlendirmesi aracılığıyla).
Bu daha esnek ve çok yönlü bir yaklaşımdır ve PHP'de diğer yöntemlerden farklı olarak birkaç tür yönlendirme gerçekleştirebilirsiniz. PHP'de yapılabilecek en yaygın yönlendirme türleri şunlardır: a) 301 PHP yönlendirmeleri (kalıcı yönlendirme durumu), b) 302 PHP yönlendirmeleri (geçici yönlendirme durumu), c) Güncelleme.
Bu makale, öncelikle, htaccess gibi diğer yaygın çözümleri kullanarak bu mümkün olmadığında URL yeniden yönlendirmeyi uygulamanın yollarını arayan acemi web yöneticileri için faydalı olacaktır.
PHP işlev başlığı
Örneğin, bu URL'ye http://www.somewebsite.com/target.php yönlendirmek istediğinizi varsayalım. Orijinal PHP sayfasında, bu yönlendirme komut dosyasını çağırmanız yeterlidir:
Bu basit deneyi localhost'unuzda da deneyin:
1) Metin düzenleyicinizi açın ve şu kodu girin:
Onu targetpage.php olarak kaydedin.
2) Başka bir boş metin dosyası açın ve şu kodu girin:
Originingpage.php olarak kaydedin.
3) Şimdi web tarayıcınızı başlatın. Tarayıcınızın adres çubuğuna şunu girin: http://localhost/originatingpage.php
4) Giriş düğmesine tıkladıktan sonra bu URL: http: //localhost/originatingpage.php'nin http://localhost/targetpage.php ve targetpage.php'ye yönlendirdiğini fark edeceksiniz ve “Merhaba bu kodeks” yazısını göreceksiniz. -x ".
En yaygın hatalardan biri, html yönlendirme kodunun tasarımında bulunabilir:
Bu deneyi deneyin:
Originingpage.php betiğine gidin ve herhangi bir HTML etiketi ekleyin:
7) Bu sefer bir hata ile karşılaşacağınızı fark edeceksiniz:
Uyarı: Başlık bilgisi değiştirilemiyor - 7. satırda /home/phpdevel/public_html/originatingpage.php içinde (/home/phpdevel/public_html/originatingpage.php:6 adresinden başlatıldı) tarafından zaten gönderilen başlıklar
Burada neler oluyor? Sorunun nedeni, işlev başlığından önce zaten HTML çıktınızın olmasıdır.
Yönlendirme ne işe yarar?
Yönlendirme ile kullanıcıları bir web sayfasından diğerine yönlendirebilirsiniz. Ayrıca, örneğin sitenizde makale bağlantılarının metinleri çirkin bir biçimdeyse (bir dizi sayı veya işaret), harf çevirisi uygulanarak ve bu bağlantılara yeniden yönlendirme yapılarak değiştirilebilirler. Yönlendirme olanakları neredeyse sınırsızdır! Sayfa dizine eklemeyi artırmak, site performansını iyileştirmek ve kullanıcıları çekmek için bu yöntemin faydaları açıktır.
301 yönlendirmesi nedir?
301 yönlendirmesi veya301 yönlendirmesi(İngilizce yönlendirmesinden) - bir kullanıcının bir URL'den diğerine zorunlu olarak yeniden yönlendirilmesidir. Ayrıca, her iki adres de bir veya farklı alan adlarına ait olabilir.
Basit ifadeyle. Kullanıcı tarayıcının adres çubuğuna girer (veya bağlantıyı takip eder) bir URL, ancak otomatik olarak diğerine gider.
Şu anda neler oluyor?
301 yönlendirmesi kullanan bir yönlendirme var. Aşağıdaki gibi çalışır.
Bir kişi adres çubuğuna bir URL girer (veya bir köprüye tıklar);
Sunucu, URL'li bir istek alır ve onu işlemeye başlar;
Bir isteği işleme sürecinde, bir talimatla "çarpışıyor" yönlendirmek ve onun talimatlarını takip eder;
Kullanıcıya talimatta belirtilen yeni bir URL ve bir 301 yanıtı gönderir.
301 yönlendirmelerinin sadece insanlar için değil robotlar için de adil olduğu söylenmelidir. Yani, bir yönlendirme varsa arama motoru tarayıcısı da farklı bir URL'ye yönlendirilecektir. Ama bunun hakkında konuşalım.
301 yönlendirmesi ne için?
Daha önce öğrendiğimiz gibi, bir adresten diğerine yönlendirmek için 301 yönlendirmeleri kullanılır. Temel olarak, bu aşağıdaki durumlarda gereklidir.
Sayfa adresi sonsuza kadar değişti, bu nedenle kullanıcıları asıl URL'ye yönlendirmeniz gerekiyor;
Sitenin etki alanı değişti, bu nedenle insanları yeni etki alanına yönlendirmeniz gerekiyor;
Aynı materyalin birkaç URL'si var, yani kopyalar;
Sitenin çevrimiçi hizmetleri, formları, modülleri ve diğer etkileşimli öğeleri çalışırken yeniden yönlendirme gereklidir.
Tabii ki, bu 301 yönlendirmesini nasıl kullanabileceğinizin tam bir listesi değil, ancak temel.
Bir sayfadan 301 yönlendirmesi yapmanın ancak bu sayfaya erişiminiz varsa mümkün olduğunu anlamalısınız. Yani, herhangi bir kaynak için yeniden yönlendirmeyi almak ve kaydetmek işe yaramayacaktır. Bu nedenle 301 yönlendirmesi, site sahibi tarafından yapılan "resmi" yönlendirme olarak kabul edilir.
301 yönlendirmesi nasıl yapılır?
301 yönlendirmesi oluşturmak oldukça basittir. Kıvrımlı algoritmalar ve karmaşık yapılar yoktur. Sadece sözdizimini öğrenmeniz ve birkaç çalışma prensibini anlamanız gerekir.
Aşağıda, yürütme bakımından farklılık gösteren ancak aynı sonuca sahip olan 301 yönlendirmeleri oluşturmanın birkaç temel yolunu açıklıyoruz.
301, .htaccess'e (Apache) yönlendirme
.htaccess dosyanızda 301 yönlendirmesi oluşturmak, yönlendirme yapmanın en popüler yoludur. Oldukça basittir ve sunucu olarak Apache kullanan tüm kullanıcılar tarafından kullanılabilir.
.htaccess dosyası sitenizin kök dizininde bulunur. Oraya bir FTP bağlantısı veya neredeyse tüm ana bilgisayar sağlayıcılarında bulunan bir dosya yöneticisi aracılığıyla ulaşabilirsiniz.
Lütfen dosya adının bir hizmet karakteriyle başladığını unutmayın - bir nokta. Bazı dosya sistemlerinde bu tür belgeler varsayılan olarak gizlidir. Bu durumda, .htaccess'i görmek için ayarları değiştirmeniz gerekir.
.htaccess dosyasındaki tüm talimatların ayrıntılarına girmeyeceğiz, yalnızca 301 yönlendirmesi ile ilgili olanları dikkate alacağız.
Öncelikle mod_rewrite modülünün kurulu olduğundan emin olmalısınız, çünkü URL'leri yeniden yönlendirmekten o sorumlu. Bu bağlamda, sunucu sağlayıcınızla iletişime geçebilir veya Apache yapılandırma dosyasını (httpd.conf) bağımsız olarak bulup kontrol edebilirsiniz.
.htaccess'i iş için hazırlama
Mevcut bir .htaccess dosyası oluşturun veya açın. İçine şu satırları yazıyoruz:
Bu bir durum kaydıdır. İhtiyacımız olan mod_rewrite modülünün Apache'de kurulu olup olmadığını kontrol eder. Varsa, etiketler arasında belirtilen her şey yürütülür. ve... Bu talimatı reddederseniz, modül eksikse bir hata görüntülenecektir.
Daha sonra, içeri modülün varlığını kontrol etmek için yukarıdaki etiketlerden aşağıdaki talimatı belirtmelisiniz:
Yeniden YazmaMotoru açık
Bu giriş mod_rewrite modülünü etkinleştirecektir.
Bir sonraki satır:
Yeniden Yazma Tabanı /
Bunun gibi bir komut, temel URL'yi ayarlar. Genellikle bu, alanın kendisidir, örneğin http://example.ru. Daha sonraki çalışmalarımızda geliştireceğimiz yerleşik adresten.
Her şeyi doğru yazdıysanız, sonuç aşağıdaki dosya olacaktır:
İşte bu, .htaccess'imiz yeniden yönlendirmeler eklemeye hazır.
.htaccess'e yönlendirme ekleyin
Yönlendirme yapmak için kullanabileceğiniz iki ana talimat vardır:
Yönlendirme 301, hem bir etki alanı içinde hem de birkaç etki alanı adresi içinde sayfadan sayfaya yönlendirmek için tasarlanmış en basit yönlendirme türüdür. URL ile parametresiz çalışır.
RewriteCond / RewriteRule - Daha esnek ve karmaşık yeniden yönlendirme kuralları. Genellikle toplu yönlendirmeler için kullanılır.
Şimdi her biri hakkında daha ayrıntılı olarak.
Yönlendirme 301
Her anlamda en basit talimat. Sözdizimi bir satıra sığar:
Yönlendirme 301<старая страница> <новая страница>
Adresler arasında sadece bir boşluk var. Nokta, tire veya diğer üçüncü taraf karakterleri yok.
RewriteCond - Bir sonraki RewriteRule yönergesinin koşulunu ayarlar. Ayrı olarak geçerli değildir.
RewriteRule - URL'yi değiştirme kuralını açıklar.
Hemen bir kullanım örneğine bakalım. Aşağıda .htaccess dosyasının bir parçası bulunmaktadır. Bu alıntı, WWW'siz bir etki alanından WWW'li bir etki alanına 301 yönlendirmesinden sorumludur.
6 satır... Konteynerin sonu mod_rewrite modülünün varlığını kontrol ediyor.
.htaccess dosyasıyla çalışırken kullanılan tüm olası komutları ve sözdizimini ayrıntılı olarak açıklamayacağız, çünkü bu çok global ve SEO dışı bir konu. Yönlendirme örnekleri bulabilirsiniz.
PHP ile 301 yönlendirmeleri
.htaccess dosyasının yanı sıra php ile 301 yönlendirmesi yapılabilir. Yöntemin özü çok basittir ve istemcinin isteğine sunucu tarafından gönderilen başlıkları kullanır.
Yönlendirme yapmak için belgeye aşağıdaki php kodunu yazmanız gerekir:
Böylece, sayfaya erişirken, istemci, yönlendirmeyi içeren ihtiyacımız olan başlığı alacaktır.
Başlık çağrılmadan önce hiçbir şeyin görüntülenmemesi gerektiğini unutmayın, aksi takdirde bir hata alırsınız. Bu "yankı" veya "baskı" ile ilgilidir. Bu kodu betiğin en başına yerleştirmek en iyisidir.
Ve işte tüm istek parametrelerini ve sayfa adresini kaydetme seçeneği (yani, alan değiştirilecek ve URL'nin geri kalanı aynı kalacak):
$ref=$_SERVER["QUERY_STRING"];
if ($ref!="") $ref="?".$ref;
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://new-domain.ru/".$ref);
exit();
?>
Bu yönlendirme yönteminin uygulanması oldukça basittir, ancak önemli bir dezavantajı vardır. Kod, yönlendirmek istediğiniz her sayfa için fiziksel olarak eklenmelidir.
301, Nginx'e yönlendirme
nginx'te bir 301 yönlendirmesi kurmanın tüm nüanslarını ayrıntılı olarak ele almayacağız, çünkü bu, SEO tanıtımından uzak, çok küresel bir konu. En popüler yönlendirmelerden sadece birkaçına göz atalım.
301, Nginx için http'den https'ye yönlendirme
Bu işlemlerden sonra arama motoru hangi aynanın aramaya katılması gerektiğini anlayacak ve kullanıcılar her zaman https'ye gidecektir.
Yalnızca 301 yönlendirmeleri alan adlarını birbirine yapıştırabilir.
Fonksiyon 4. URL adreslerini tek bir forma getiriyoruz
301 yönlendirmeleri ve sitenin tüm URL'lerini tek bir forma getirmek için kullanıldı. Bazı URL'lerin sonunda eğik çizgi olduğunu ve bazılarının olmadığını varsayalım. Bu durumda adresleri hangi formatta getireceğimize karar vermemiz ve bir yönlendirme yapmamız gerekiyor.
Örneğin, sitemizde tüm URL'lerin satırının sonunda bir eğik çizgi bulunur. Eğik çizgi içermeyen bir adres göründüğünde, ondan otomatik olarak bir yönlendirme yapılır.
301 yönlendirmesi veya rel = "kurallı"
En azından bazı durumlarda, rel = "canonical" özniteliği, 301 yönlendirmesine bir alternatif olarak kabul edilir. Bakalım bu böyle mi?
Hatırlatma olarak, rel = "canonical", arama motoruna bir sayfanın ana URL'sini söylemenize olanak tanır. Bu özellik hakkında daha önce daha ayrıntılı olarak yazdık.
Öncelikle bu yöntemler arasındaki farkların ne olduğunu anlamanız gerekir. Bu amaçla aşağıdaki tabloyu oluşturduk.
Tablodan da anlaşılacağı gibi, enstrümanlar arasındaki farklar birbirine alternatif olarak değerlendirilemeyecek kadar büyüktür. Her biri kendi sorunlarını çözmek için tasarlanmıştır.
SEO'da olmadan yapamayacağınız 301 yönlendirmelerinin ana özelliklerinden biri, yapıştırma aynaları.
Arama motoru aynaları, aynı içeriğe sahip sitelerdir. (veya içeriğin kısmi bir kopyası) farklı URL'lerde mevcuttur. İşin garibi, internetteki hemen hemen her sitenin aynaları var. Mesele şu ki, arama motoru için etki alanı www ile ve www olmadan bunlar farklı adresler.
Yani, bir arama motoru için www..ru, aynı içeriğin mevcut olduğu farklı URL'lerdir. Bu durum o kadar popüler ki, Yandex Webmaster'ın aramada yer alacak ana aynayı seçebileceğiniz bir "Site taşıma" bölümü var. Çağrı yönlendirme elbette bu durumda görünmüyor. Bu talimat sadece arama motoru robotu içindir.
Www durumunda, etki alanları yansıtmalar tarafından otomatik olarak tanındığından, 301 yönlendirmeleri genellikle atlanır. Böyle bir fırsat olmasına rağmen ve hatta bazen gereklidir. www'den OLMADAN www'ye yönlendirme konusunda biz varız.
Diğer tüm durumlarda, yapıştırma için yeniden yönlendirme gerekecektir.
Diyelim ki ziyaret edilmiş bir ticari kaynağımız var. Sahibi olan şirket başka bir firma ile birleşir ve bunun sonucunda sitenin alan adının değiştirilmesi de dahil olmak üzere yeniden markalama yapılması gerekir. Bu durumda nasıl olunur? Sonuçta, site sürekli olarak organik arama sonuçlarından müşteri getiriyor.
Bir çözüm var: Yeni etki alanını mevcut olanla yapıştırmak gerekiyor. Bu durumda, güncellenen adres ana adres olmalı ve arama sonuçlarında bulunmalıdır. 301 yönlendirmeleri bu konuda bize yardımcı olacaktır. Siteye yeni bir alan adı bağlamanız ve ardından eski alan adını içeren tüm URL'lerden yeni alan adıyla ilgili URL'lere bir 301 yönlendirmesi koymanız gerekir. Nasıl yapılır,.
Bu işlemden sonra TIC, "bağlantı ağırlığı" ve diğer "puzomerki"lerin yeni etki alanına aktarılacağını söylemeye değer.
Birkaç güncellemeden sonra, arama sonuçlarında yeni alan adı görünecek, siteler aynalar tarafından tanınacak ve konumlar ve görünürlük korunacaktır.
301 ve 302 yönlendirmeleri arasındaki fark
SEO açısından, 301 yönlendirmeleri 302'den kökten farklıdır. Sözdizimleri çok benzer olsa da, bir arama motoru için tamamen farklı anlamlar taşırlar. İşte onların temel farkı:
301 yönlendirmesi (Kalıcı Yönlendirme) — kalıcı sayfayı hareket ettirmek;
302 yönlendirmesi (Geçici yönlendirme) — geçici sayfayı hareket ettirmek;
Tüm farklılıkları ve kullanım ilkeleri bundan kaynaklanmaktadır.
Basitçe söylemek gerekirse, bir 301 yönlendirmesi yaparak, arama motoruna eski adresi unutabileceğinizi "söyleriz" ve tüm materyaller artık yeni URL'de sonsuza kadar kullanılabilir.
302 yönlendirmesi durumunda, yeniden yönlendirmenin geçici olarak tamamlandığını ve yakında eski adresin tekrar kullanılabilir olacağını bildiririz. Yani, trafiği bir sayfadan diğerine kısaca aktarmanız gerekir, bundan sonra her şey normale döner.
* 301 ve 302 yönlendirmelerinin dolandırıcılık için arama motoru filtreleri tarafından farklı derecelerde vurulma riskine sahip olduğu söylenmelidir. Elbette, herhangi bir kuralı ihlal etmeden herhangi bir yaptırıma maruz kalmanız olası değildir, ancak yine de riskleri değerlendireceğiz. Siyah SEO'da 302 yönlendirmeleri sıklıkla kullanıldığından, bunu kullanma riski 301 yönlendirmelerinden çok daha yüksektir.
302 yönlendirmesinin kullanımı ne zaman haklı çıkar?
Kullanıcıları geçici olarak sitenin başka bir sayfasına yönlendirmenin gerekli olduğu durumlarda 302 yönlendirmelerinin kullanılması haklı çıkar. İşte bu tür durumlara örnekler.
Basit 301 Yönlendirme Eklentisi
Kurulum prensibi, Yeniden Yönlendirme ile tamamen aynıdır. Eklenti ararken şunları bulmanız gerekir:
Eklentiyi etkinleştirdikten sonra, soldaki WordPress menüsünde “ Ayarlar"Bağlantı" 301 yönlendirmeleri". Geçiyoruz ve kendimizi iki alanlı bir sayfada buluyoruz.
İlk alan nerede bir yönlendirme koyduk, ikincisi - nerede... Karmaşık ayarlar yok, her şey mümkün olduğunca basit.
301, Joomla!
Joomla!'da 301 yönlendirmesi oluşturmak için! 3 zaten standart bir bileşene sahiptir. Menüyü genişleterek bulabilirsiniz" Bileşenler» — > « Yönlendirme«.
Geçişten sonra, varsa mevcut tüm yönlendirmeleri göreceksiniz.
Yeni bir tane oluşturmak için "Oluştur" düğmesine tıklamanız ve gerekli tüm alanları doldurmanız gerekir. (yıldız ile işaretlenmiştir).
Yönlendirme, kaydettikten hemen sonra çalışmalıdır. Bu olmazsa, aşağıdaki adımları izlemeniz gerekir.
Joomla!'da 301 yönlendirmesi olursa ne yapmalı? çalışmıyor?
Standart Joomla! 3, yönlendirme işe yaramadı, gerekli:
Sitenizin kök klasöründe bulunan configuration.php dosyasını açın;
public $ live_site değişkenini bulun;
Değeri olarak sitenizin alan adını verin.
Değişiklikleri kaydedip yönlendirmeyi kontrol ediyoruz.
301 Opencart 2'ye yönlendirme
Opencart 2 için kalıcı yönlendirmeler oluşturmanıza izin veren hazır bir modül bulunmaktadır. Onun ismi " 301 yönlendirme yöneticisi«.
Her türlü 301 yönlendirmesini destekler ve Opencart 2.x'in tüm sürümleriyle uyumludur.
Bu modül önceden yüklenmiş SEO uzantılarıyla çakışabilir, bu nedenle satın almadan ve kurmadan önce talimatları okuyun.
Opencart da dahil olmak üzere herhangi bir CMS sisteminin, içinde veya aracılığıyla manuel olarak oluşturulan yönlendirmeleri desteklediğini unutmayın.
301 Modx'e yönlendirme
Modx Revo için, bir 301 yönlendirmesini uygulamaya yönelik birçok hazır çözüm vardır. Bunlardan biri Yönlendirici. Bu uzantının kurulumu ve kullanımı zor değildir. Bununla birlikte, herhangi bir zorluk yaşarsanız, https://docs.modx.com/extras/revo/redirector resmi sayfasında herhangi bir konuyu ayrıntılı olarak inceleyebilirsiniz.
Wix için 301 yönlendirmeleri
Wix, standart bir 301 yönlendirme özelliğine sahiptir. Hiçbir şey icat etmenize gerek yok, sadece aşağıdaki talimatları izleyin.
Site yönetimi moduna gidin;
SEO bölümünü bulun ve ona gidin;
Sayfayı "Yönlendirme: 301 yeniden yönlendirme" bloğuna kaydırın;
"Çağrı yönlendirmeyi yapılandır" ı tıklayın;
İlgili alanlara eski ve yeni URL'yi girin;
Yeniden adresleme performansını kontrol ediyoruz.
Ortak yönlendirmeler
Aşağıda, .htaccess dosyasında oluşturulan 301 yönlendirmeleri için en yaygın seçenekleri topladık. Birçok örnekte demo verilerinin değiştirilmesi gerekir, aksi takdirde yeniden yönlendirme düzgün çalışmayacaktır.
301 http'den https'ye yönlendirme
Güvenli bir protokole geçerken zorunlu yönlendirme. Eğer yoksa, kullanıcılara farklı protokollere sahip sayfalar gösterilecek ve aramada kopyalar bulunacaktır.
Bu yönlendirmenin sonucu, tüm URL adreslerinden "WWW" önekinin "kaldırılması" olacaktır.
301, OLMADAN www'den www'ye yönlendirme
Ana ayna olarak WWW'li bir alan seçildiyse, tüm URL'lere ilgili “WWW” önekini eklemeniz gerekir. Aşağıdaki yönlendirme size bu konuda yardımcı olacaktır.
Bu yönlendirmenin sonucu, tüm URL adreslerine “WWW” önekinin eklenmesi olacaktır.
Bir sayfadan diğerine 301 yönlendirmeleri
En basit ve en yaygın yönlendirmelerden biri. Tek satıra sığar. Sayfa URL'sini kalıcı olarak değiştirmenize, kopyalardan ve eski malzemelerden kurtulmanıza olanak tanır.
Yukarıdaki talimatın yürütülmesinin sonucu, / sayfa-1 / sayfasından / yeni sayfa-1 / sayfasına kalıcı bir yönlendirme olacaktır. Bu durumda, / sayfa-1 / bölümü aramadan çıkarılacak ve / yeni sayfa-1 / mevcut tüm "ağırlığı" alacaktır.
Bu şekilde yalnızca URL'leri parametresiz yönlendirmenin mümkün olduğunu unutmayın. Yani sayfa / sayfa-1 / için ? ürün kimliği = 7389 bu komut çalışmayacaktır.
Alandan etki alanına 301 yönlendirmesi
Siteyi tamamen ve koşulsuz olarak başka bir alana aktarmanın yanı sıra izin verir.
RewriteEngine On RewriteCond% (HTTP_HOST) domain1.ru RewriteRule (. *) Http://domain2.ru/$1
Yukarıdaki yönlendirmenin sonucu, domain1.ru'ya yapılan tüm çağrıların domain2.ru'ya yeniden yönlendirilmesi olacaktır.
301 eğik çizgi yönlendirmesi (sondaki eğik çizgiyi kaldırın)
Arama motorunun indirmemesi ve aramada kopyaları yerleştirmemesi için tüm URL'leri tek bir formata getirmesi gerekir. Bu aynı zamanda sayfa adresinin sonunda bir eğik çizgi bulunması için de geçerlidir. Robotların yinelenenleri aramanın dışında tutmayı öğrenmiş olmasına rağmen, siteler için eğik çizgi olmayan bir yönlendirme yapılması önerilir.
Sonuç, URL'nin sonuna bir eğik çizgi "eklemek" olacaktır.
index.php'den 301 yönlendirmesi (html)
Popüler olanlar da dahil olmak üzere birçok CMS sisteminde, URL yanlış yapılandırılmışsa, ana sayfa hem alan adı hem de alan adı + index.php (html) ile kullanılabilir hale gelir. Yani, alan ve site / index.php aynı sayfaya yönlendirin - ana sayfa. Arama motoru için bunlar kopyadır, bu yüzden onlardan kurtulmanız gerekir.
Örnek 1, index.php için
RewriteCond% (THE_REQUEST) ^ (3.9) \ / index \ .php \ HTTP / RewriteRule ^ index \ .php $ http: // site /
Örnek 2, index.html için
RewriteCond% (THE_REQUEST) ^ (3.9) \ / index \ .html \ HTTP / RewriteRule ^ index \ .html $ http: // site /
Her iki örneğin sonucu, /index.php'den (html) "site köküne", yani sadece etki alanına bir yönlendirme olacaktır.
Toplu 301 yönlendirmesi
Toplu 301 yönlendirmeleri esas olarak sitenin yapısını, bölümünü veya URL türünü değiştirirken kullanılır. Tek sayfadan sayfaya yönlendirmelerden farklı olarak, yeniden yönlendirme gerektiren tüm URL'lerle eşleşen belirli bir kurala göre yapılır.
Bazı CMS sistemlerinde, tek bir CNC adresi oluşturmak için varsayılan olarak 301 yönlendirmeleri oluşturulur.
Yukarıdaki örneklerin çoğu, kuralları tek bir URL için değil, mevcut veya seçili tüm gruplar için geçerli olduğundan toplu yönlendirmeler olarak sınıflandırılabilir.
404 Bulunamadı sayfasından yönlendirme
Var olmayan bir sayfadan ana sayfaya (veya başka bir sayfaya) bir yönlendirme oluşturmak teknik olarak mümkündür. Bunda bir sorun yok. Ancak, SEO açısından bu yanlış olur. Var olmayan bir bölüme erişirken, indeksleme robotu uygun başlığı almalıdır - 404. Siteyi doğru şekilde indeksleyebilmesinin tek yolu budur. Ayrıca arama motorları çok sayıda yönlendirmeyi sevmez, bu nedenle kullanımları minimuma indirilmelidir.
Örnek 1. 404 sayfasından ana sayfaya yönlendirme
Bulunamayan tüm sayfalardan ana sayfaya yönlendirme örneği aşağıda verilmiştir.
ErrorDocument 404 http://www.site.com/301.html
Bu yönlendirmenin sonucu, 404 sayfaya yapılan tüm isteklerin sitenin ana sayfasına yönlendirilmesi olacaktır.
Örnek 2. 404 sayfasından 301 yönlendirmesi ile ana sayfaya yönlendirme
Bu örnekte, aslında, iki yönlendirme kullanılır, bu nedenle arama motorları bunu hoş karşılamaz. Ancak, kalıcı bir 301 yönlendirmesi yapmanız gerekiyorsa, işte bir örnek.
Örnek 3. 404 sayfasından hazırlanmış bir sayfaya yönlendirme
Sadece ana sayfaya değil, başka herhangi bir bölüme de yönlendirmek mümkündür. Örneğin, önceden hazırlanmış bir 404 sayfasında Şuna benzer:
HataBelgesi 404 /404.html
301 yönlendirmelerini kontrol etme
Bir 301 yönlendirmesi kurduktan sonra, doğru çalışıp çalışmadığını kontrol etmeniz gerekir. Bunu yapmak için, yönlendirmenin yapıldığı sayfanın URL'sini tarayıcınızın adres çubuğuna girin. Yeni bir sayfa görürseniz, yani yönlendirme yaptığınız sayfa, o zaman her şey doğru çalışır.
İşe yarayan 301 yönlendirmesi olduğundan emin olmak için, “ bölümünde Yandex Webmaster'a gitmeniz gerekir. Enstrümanlar» — > « Sunucu yanıtı kontrol ediliyor«.
alanında" Anketli URL»Yönlendirmeyi yaptığınız sayfanın adresini girmelisiniz. Kontrolün sonucu bir HTTP durum kodu olmalıdır " 301 Kalıcı Olarak Taşındı«
Eski sayfaya erişirken yeniden yönlendirme gerçekleşmezse veya HTTP durum kodu "301 Kalıcı Olarak Taşındı" değilse, yeniden yönlendirme ayarlarının doğruluğunu kontrol edin.
301 yönlendirmesi işe yaramazsa ne olur?
301 yönlendirmelerinin çalışmamasının tüm nedenlerini listeleyemiyoruz, ancak en yaygın olanlarını belirteceğiz. İşte işe yaramayan en yaygın yönlendirmelerin listesi:
Doğru 301 yönlendirmesi nedir?
Doğru bir 301 yönlendirmesi, aşağıdaki gereksinimlerin tümünü karşılar:
Sayfaya yönlendirir başka yönlendirme yok... Yani sayfadan yönlendirme yaptıysanız A sayfaya B, ardından sonuncusu ile ( B) artık herhangi bir yönlendirme olmamalıdır. Kullanıcının gideceği son nokta olmalıdır;
Yanıt kodu olan sayfaya yönlendirir 200 TAMAM... Başka bir deyişle, mevcut ve erişilebilir bir bölüme. Var olmayan veya kısıtlanmış bir sayfaya yönlendirme yapmak kabul edilemez;
Sözdizimi ve mantık hataları olmadan yapılmış;
301 yönlendirmesi bilinçli olarak seçilmiştir. 302 veya 307 değil, ihtiyacınız olduğundan emin olun. Yönlendirme türünün seçimi çok önemlidir, çünkü SEO açısından aralarındaki fark küreseldir;
rel = "canonical" özniteliği ile kalıcı yönlendirme arasında bilinçli bir seçim yapıldı. Aldığınızda yönlendirmeler yapmamalısınız;
Yönlendirmeniz yukarıdaki gereksinimlerin tümünü tam olarak karşılıyorsa, bunun harika olduğunu düşünebilirsiniz.
301 yönlendirmeleri nasıl kaldırılır?
Kaynağı bilinmeyen bir 301 yönlendirmesini kaldırmanız gerekiyorsa, birkaç basit adım atmanız gerekecektir. Bunları tamamlamak için CMS'ye, sitenin kök dizinine ve yüzeysel bir php / html bilgisine ihtiyacınız olacak.
Herkes gönderebilir. Ancak doğru yönlendirmek bir sanattır. Ancak internet üzerinde kullanıcıları istenilen yola yönlendirmek daha da zordur. Bunun için bir php yönlendirmesi en uygunudur.
Yönlendirme nedir?
Web programlamada, bir bağlantıyı takip eden bir kullanıcıyı farklı bir adrese yönlendirmeniz gerektiğinde durumlar ortaya çıkar. Tabii ki, ilk bakışta, böyle bir yönlendirmenin uygulanması biraz "yasadışı" görünüyor. Uygulamada, böyle bir yönlendirme yalnızca siber suçlular arasında değil, aynı zamanda dürüst web yöneticileri arasında da talep görmektedir:
Hangi durumlarda bir yönlendirme gerekli olabilir:
Site motoru değiştirildiğinde, sonuç olarak tüm kaynağın mimarisi değişir. O zaman bir yönlendirmenin nasıl yapılacağı sorunu ortaya çıkar;
Bir kaynağın yapısını yeniden şekillendirirken - tüm bölümlerin veya bir malzemenin eklenmesi, çıkarılması veya aktarılması vardır. Bu işlem devam ederken, bir kullanıcının istediğiniz bölüme yönlendirilmesini geçici olarak ayarlayabilirsiniz;
Site alan adını yakın zamanda değiştirmişse - alan adını değiştirdikten sonra, eskisi bir süre arama sonuçlarında görünecektir. Bu durumda, arama motoru kullanıcıyı otomatik olarak yeni etki alanına yönlendirecektir;
Yetkilendirme işlemi sırasında - kural olarak, büyük bir sitede iki kullanıcı grubu vardır: düzenli ziyaretçiler ve kaynak yöneticileri. Bu durumda, her kullanıcı için haklarına ve rolüne göre bir yönlendirme uygulamak mantıklıdır. Yetkilendirmeden sonra site yöneticisi veya moderatörler kaynağın yönetim bölümüne, ziyaretçiler ise kaynağın kullanıcı bölümüne gider.
php'ye yönlendirmenin özellikleri
Diğer dillerden farklı olarak, php'nin yeniden yönlendirmede bazı avantajları vardır:
Php, sunucu taraflı bir programlama dilidir. Bu nedenle, yeniden yönlendirme, tarayıcıda görüntülenen sayfaların html kodunda değil, sunucuda barındırılan komut dosyasında gerçekleşecektir;
Bir php yönlendirmesi birkaç şekilde uygulanabilir. Bu, uygulamasını büyük ölçüde genişletir;
Sunucudaki verilerin işlenmesi nedeniyle, php ile uygulanan yeniden yönlendirme, arama motoru filtrelerinden daha az etkilenir.
Php'de bir yönlendirme için başlık () işlevi kullanılır. Http başlığını göndermek için kullanılır. Sözdizimi:
İşlev tarafından kabul edilen argümanlar şunlardır:
dizi $ dizi- başlık satırı;
Bu argümanın iki türü vardır. Birincisi bir bağlantı durum kodu göndermektir. "HTTP /" ile başlar. Diğer tür, başlıkla birlikte istemci tarayıcısına bir durum kodu (YÖNLENDİRME 302) gönderir. Bu argüman "Konum:" ile başlar.
bool $ replace, isteğe bağlı bir bool niteliğidir. Önceki başlığı geçersiz kılmaktan sorumludur. Doğruysa, önceki başlık veya aynı türden başlıklar değiştirilir. Argüman false olarak ayarlanırsa, başlığın üzerine yazılmaz. Varsayılan olarak true olarak ayarlanmıştır;
http_response_code - Bağımsız değişken, HTTP yanıt kodunu zorlar. Dize bağımsız değişkeninin boş olmaması koşuluyla kodun yüklenmesi başarılı olacaktır.
HTTP durum kodu, sunucu yanıtının en üst satırının bir parçasıdır. Kod, üç sayıdan ve ardından İngilizce açıklayıcı bir yazıttan oluşur. İlk hane devlet sınıfından sorumludur. Yönlendirmeler 300'den 307'ye kadar olan kodlara karşılık gelir. Tam açıklamaları ilgili teknik belgelerde bulunabilir.
Dış bağlantıları yeniden yönlendirmek için header() işlevini kullanırken, çağrının konumu çok önemlidir. Kodda, tüm html etiketlerinin üzerinde olmalıdır:
Bir başlık () yönlendirmesi uygulama
Bir işlevin yerel bir sunucuda nasıl çalıştığını göstermek için iki dosya oluşturmanız gerekir. Bir tanesine yönlendirme.php, diğerine yönlendirme2.php diyelim. İlkinin içine, fonksiyon çağrısını aşağıdaki formatta yerleştireceğiz:
Satırı başka bir dosyaya koyun:
echo "Merhaba! Yönlendirme2.php dosyasındasınız";
PHP yönlendirmelerini kullanmanın bazı daha pratik örnekleri:
Http durum kodunu zorlamak - türündeki başlık () işlevinin ilk argümanını kullanırken yer"Varsayılan olarak durum kodu" 302
» ( geçici olarak taşındı). Bir kaynağı başka bir alan adına aktarırken bu sorun olabilir. Arama motorlarında böyle bir geçici yönlendirme gecikebilir. Sonuçta, arama motoru durum kodunu sürekli olarak analiz eder. Ve diyor ki " geçici olarak taşındı". Durum kodunun zorla yeniden yazılmasına bir örnek " 302
" üzerinde " 301
» ( kalıcı olarak taşındı):
Ayrıca, üzerine yazma iki aşamada mümkündür. İlk satır durum kodunu yeniden yazar ve ikinci satır yeni bir adrese yönlendirir:
Kullanıcının rolüne bağlı olarak yeniden yönlendirme için bir yönlendirme dış bağlantıları kullanma. Rol, kimlik doğrulama prosedürü sırasında belirlenir. İşlenecek değer $ who değişkenine yazılır:
Harici bağlantı yönlendirme uygulamasının basitleştirilmiş pratik örneği - bağlantıya tıklamak php sayfasına götürür. Buradan kullanıcı 5 saniye sonra Rambler'a aktarılır. HTML Kodu:
it beni
Redirect3.php dosya kodu:
Pekala, burada php'ye yönlendirmenin temellerini öğrendik. Artık kullanıcıları doğru yöne yönlendirmeyi güvenle üstlenebilirsiniz. Ana şey, yönde yanılmamak, aksi takdirde tüm kullanıcılarınızı başka birinin sitesine çekeceksiniz ...
UDC 681.5, 681.325.5 (075.8) BBK 32.973.202-018.2 i 73 Shcherbina A.N. Bilgisayar makineleri, sistemleri ve ağları. Mikrodenetleyiciler ve mikroişlemciler ...
Taramalı Atomik Kuvvet Mikroskobu Laboratuvar raporu şunları içermelidir:
Havai iletişim ağı için destek seçimi
AC katener tasarımı ve hesaplanması
Mikroişlemci sistemlerinin geliştirilmesi Mikroişlemci sistemlerinin tasarım aşamaları
mcs51 ailesinin mikrodenetleyicileri