• Htaccess 301 var olmayan sayfadan yönlendirme. Toplu kategori değişimi

    • kaydeden Nikolai Korotkov
    • Tarih: 29 Kasım 2013, 09:23

    Tekrar merhaba!

    Bugün size 301 yönlendirmesini nasıl kuracağınızı anlatacağım. Belki 301 yönlendirmelerini bir kereden fazla duymuşsunuzdur, ancak ihtiyaç eksikliğinden ve belki de onarılamaz bir şey yapma korkusundan dolayı, ilk bakışta bu zor kısaltmaya pek önem vermediniz.

    İnternette 301 yönlendirmesi kurulumu hakkında birçok makale yazıldı. Ancak çoğuna bakıldığında, yeni başlayanlar "beyni patlatabilir". Tüm bu anlaşılmaz komut dosyaları ve kodlar, birçokları için kafa karıştırıcıdır. Aslında her şey ilk bakışta göründüğü kadar karmaşık değil ve bu yazıda 301 yönlendirmesi nasıl kurulur onu olabildiğince anlaşılır bir şekilde herkese aktarmaya çalışacağım.

    Ve şimdi sırayla her şey hakkında. 301 yönlendirmesi nedir? Bu, bir ziyaretçinin başka bir sayfaya veya alana yönlendirilmesidir (alan adının ne olduğu ve nasıl kaydedileceği hakkında bilgi edinin). Hemen söylemeliyim ki, bu makalede çeşitli komut dosyalarını ve karmaşık kodları dikkate almayacağım, yalnızca herhangi bir web yöneticisinin fazlasıyla bileceği birkaç basit yönlendirme seçeneği göstereceğim.

    301 yönlendirmesi nasıl kurulur? Yönlendirme.htaccess

    .htaccess üzerinden 301 yönlendirmelerini ele alacağız. htaccess, pek çok olasılığı gizleyen bir hizmet yapılandırma dosyasıdır. Bununla belirli dizinlere erişimi reddedebilir, sayfa kodlamasını belirleyebilir, dosya ve klasör korumasını ayarlayabilir, 301 yönlendirmeleri yapabilir, vb.

    Bu, genel anlamda, amacını anlamanız için ve aslında hayal edebileceğinizden çok daha fazla fırsata sahip. Özünde, dosyanın adı yoktur ve başında zorunlu bir nokta bulunan bir .htaccess uzantısı olarak yazılır.

    Aniden bu dosya sitenizin kök dizininde görünmezse, kendiniz oluşturun. Bir .htaccess dosyası oluşturmanın en kolay yolu, FileZilla FTP istemcisini kullanmaktır (bunun hakkında yazdım):

    Bunu yapmak için blogunuzun kök dizinine gidin, boş bir alana sağ tıklayın / Yeni bir dosya oluşturun / Bir dosya adı girin / .htaccess / Tamam. Bundan sonra, dosya düzenleme için uygun olacaktır. Herhangi bir metin düzenleyiciyle açabilirsiniz, örneğin .

    Ancak ftp yöneticisinin .htaccess dahil olmak üzere sistem dosyalarını gizlediği zamanlar vardır. Bu nedenle, kök dizinde bir dosya bulamazsanız, onu oluşturmak için acele etmeyin. Her şeyden önce, içinde var olup olmadığını kontrol edin. gizlenmiş dosyalar.

    Bunu yapmak için "Sunucu" sekmesine gidin ve "Gizli dosyaları göstermeye zorla"nın yanındaki kutuyu işaretleyin. Bu durumda .htaccess dosyasını bulamazsanız, onu oluşturun.

    301 yönlendirmesi ne zaman gerekli olabilir?

    En önemlisinden başlayalım!

    Genel olarak, İnternet'teki her kaynağın bir 301 yönlendirmesi olmalıdır. Ve basitçe gerekli olduğunda en yaygın durum, WWW öneki olan bir etki alanından onsuz bir etki alanına veya tam tersi bir yönlendirmedir (www ayrıca önek olarak da adlandırılır). Şimdi, herkesin neyin tehlikede olduğunu anlaması için bunun neden olduğunu kısaca açıklayacağım.

    Gerçek şu ki, ağdaki herhangi bir kaynak için, alan adı seçeneklerinden biri (www olan veya olmayan) ana seçenek olmalıdır. Blogumla ilgili basit bir örnek. Ana etki alanı http://site, A www.site onun aynasıdır. Blogun ana aynası, Host yönergesi biçiminde Yandex için robots.txt dosyasına yazılır.

    Bir robots.txt dosyanız yoksa, her şeyi ayrıntılı olarak çizdiğim burayı mutlaka inceleyin. robots.txt hatasız her kaynakta bulunmalıdır. Aksi takdirde blog başarısızlığa mahkumdur! Yandex.Webmaster'da robots.txt dosyasına ek olarak ana site aynasını belirtmeniz gerekir.

    Ancak robots.txt dosyasında zaten belirtildiği için her şeyi robotun takdirine bırakmanızı tavsiye ederim. Bunu yapmak için, "Dizin Oluşturma Ayarları/Ana Ayna" sekmesine gidin ve "Robotun takdirine bağlı olarak" öğesinin önüne bir daire koyun:

    Bu özelliği kullanmak için Yandex.Webmaster'a kaydolmanız gerekir. Bunun nasıl yapılacağı hakkında yazdım. Yakın zamana kadar, Google Web Yöneticisi Araç Çubuğu benzer işlev, burada ana etki alanı belirtildi, ancak yapıldıktan sonra son değişiklikler geliştiriciler, ortadan kayboldu.

    Ana site aynasını belirterek, kaynağınız doğru bir şekilde dizine eklenecek ve kopyalar oluşturmayacaktır. Birçok yeni başlayan, büyük bir ihmal olan ve aşağıda tartışacağım gelecekte çok fazla soruna neden olan site aynasını duymamış olabilir.

    Ayna ile yapılan tüm manipülasyonlardan sonra, arama robotları zaten ana etki alanını kendileri belirleyecektir. Yönlendirmeyi bile kontrol edebilirsiniz, her şey yolunda gitmeli. Ve burada durabiliriz, ancak SEO öyle bir şeydir ki şansa güvenmemelisiniz ve bir yönlendirme ayarlayarak bir kez daha güvenli oynamak daha iyidir.

    www ön ekine gelince, uzun zaman önce ölmüş olmalıydı. Ancak ağda hala www ön ekine sahip birçok kaynak olduğundan, olması gereken bir yer vardır. İçin arama motorları http://site Ve www.site Bunlar tamamen farklı iki adres! Ve kullanıcılar genellikle tarayıcı satırına www'den bir kaynağın adresini yazar, bu yüzden ölmesi için çok erken. Buna dayanarak, ayna ayarları basitçe gereklidir!

    Yanlış yansıtma ayarlarının sonuçları

    Aslında çok fazla yok, sadece iki ana noktayı seçtim. Ancak, ağırlıkları birçok yeni başlayanın ciddi şekilde düşünmesine neden olacak...

    1. Hepsi Dış bağlantılarüçüncü taraf kaynaklar veya kullanıcılar tarafından nasıl yönlendirileceğinize bağlı olarak www içeren ve www içermeyen adresler arasında dağıtılacaktır. Görünüşe göre blogunuz, tanıtımını ve katılımını olumsuz yönde etkileyecek bazı bağlantılardan mahrum kalacak. Ama bu en kötüsü değil!

    2. Arama motorlarının sürekli benzersizlik için savaştığını herkes bilir! Yinelenen içerikten nefret ederler ve aynı içeriğe sahip siteleri ciddi şekilde cezalandırırlar. Şimdi, blogunuzun başlangıçta www ön ekiyle dizine eklendiği, ancak kaynak geliştikçe www ön eki olmayan sitenin daha fazla popülerlik kazandığı (daha sık bahsedilir ve atıfta bulunulur) bir durum hayal edin.

    Doğal olarak, bundan haberiniz bile yok ve kaynağınızı geliştirmeye devam ediyorsunuz. Zamanla büyüyecek benzersiz içerik, doğal bağlantılar ve yorumlar. İşler yokuş yukarı gidiyor, peki, nasıl sevinmezsin? Ama sorun burada! Siteyi www öneki olmadan izleyen arama motorları, benzersiz olmadığı için siteyi damgalıyor! Sonuç olarak, dizine eklenmeyi bırakacak ve zamanla dizinden tamamen düşecek!

    Bu korkutucu ve çok utanç verici olurdu! Ve bu tür üzücü durumlardan kaçınmak için 301 yönlendirmeleri icat edildi.

    Bir etki alanından www'den www olmadan www'ye veya tam tersi yönde yönlendirme

    Bu durumda bir 301 yönlendirmesi nasıl kurulur? Her şey çok basit. .htaccess dosyasını açın ve aşağıdaki kodu içine kopyalayın.

    www'den www olmayana yönlendirme:

    RewriteCond üzerinde RewriteEngine %(HTTP_HOST) ^www.yourdomen.ru RewriteRule ^(.*)$ http://yourdomen.ru/$1

    ve tersi:

    RewriteCond'da RewriteEngine %(HTTP_HOST) ^yourdomen.ru RewriteRule (.*) http://www.yourdomen.ru/$1

    Lütfen her iki durumda da alan adınız yerine belirtmeniz gerektiğini unutmayın. Alan adı Blogunuz!

    .htaccess dosyasını kaydedin ve eski dosyayı değiştirerek kök dizine geri taşıyın. Artık kullanıcı blogunuzun adresini tarayıcı satırına nasıl girerse girsin (en azından İnternet sitesi, Yine de www.site, Yine de http://www.site), yönlendirilecek ana sayfa.

    Bir etki alanından diğerine geçiş

    Yukarıdaki benzer bir 301 yönlendirme şeması, bir alandan diğerine geçerken kullanılabilir. Ama yine de netlik için bir örnek vereceğim. Bir etki alanından taşınıyorsunuz www.sait-1.ru etki alanı başına www.sait-2.com. Bu durumda .htaccess dosyasına şunu yazıyoruz:

    RewriteCond'da RewriteEngine %(HTTP_HOST) sait-1.ru RewriteRule (.*) http://sait-2.com/$1

    CNC bağlantılarını değiştirirken yönlendirme

    Bazen CNC bağlantılarını değiştirmek gerekli hale gelir (hakkında okuyun). Belki de blogunuzdaki bir bölümün (kategori) tamamını değiştirmeye karar verdiniz. Ya da sadece CNC hakkında hiçbir şey bilmiyorlardı, ancak blog zaten sürdürülüyor ve içerikle dolduruluyor. Bu durumda, bir 301 yönlendirmesi kullanışlı olacaktır. Ayrıca, bu senaryoda, tüm sayfa göstergeleri (önceden yerleştirilmiş bağlantılar, ağırlık, PR) aynı seviyede kalacaktır, yani. önemini, otoritesini ve konumunu kaybetmeyecek!

    Basit bir örnek vereceğim. Sayfanın başlığını değiştirmeye karar verdiniz. eski sayfanın adı obo-me.html, yeni isim ob-yazar.html. Bu durumda .htaccess dosyasına aşağıdaki yapıyı yazmanız gerekecektir:

    Bağlı kuruluş programları için yönlendirme

    Diyelim ki kullanıcıyı bir sayfaya yönlendirmeye karar verdiniz. Ortaklık Programı. Ortaklık kodu şöyle görünür: http://www.partnerka.ru/?ref=35677. Böyle bir bağlantıyı gören çoğu kullanıcı, niyetinizi önceden bildiği için onu takip etmeyecektir.

    Bağlantının çekici bir görünüm kazanması için oluşturmanız gerekir. ayrı sayfa, örneğin, kullanıcının ortaklık programının bulunduğu sayfaya yönlendirileceği dlya-partnerov.html. Şimdi geriye yourdomen.ru/dlya-partnerov.html sayfasına bir bağlantı yerleştirmek ve .htaccess dosyasına şunu yazmak kalıyor:

    yönlendirme 301 dlya-partnerov.html http://www.partnerka.ru/?ref=35677

    Ancak şahsen, bu tür amaçlar için, bahsettiğim basit bir komut dosyası kullanmayı tercih ederim (yöntem No. 3).

    Muhtemelen hepsi bu. Artık bir 301 yönlendirmesini nasıl kuracağınızı biliyorsunuz ve bununla ilgili herhangi bir sorun yaşamazsınız. Her webmaster'ın bilmesi gereken .htaccess üzerinden 301 yönlendirmenin en basit çeşidini size gösterdim. Söylemek istediğim son şey, performans için her zaman yönlendirmeleri kontrol edin. Şimdilik bu kadar millet!

    Makaleyi nasıl buldun? 301 yönlendirmesi kullanıyor musunuz? Belki yönlendirmenin daha kolay yollarını biliyorsunuzdur? Yorumlarını bekliyoruz!

    Makaleyi beğendiniz mi? Arkadaşlarınla ​​paylaş!

    Her yorumcuya bir kitap hediye edilir!

    kitap içerir Detaylı Açıklama en etkili yöntemler kaynağınızın tanıtımı!


    60 yorum

    1. 29 Kasım 2013 15:20

      Okudum ve hiçbir şey anlamadım ... Benim gibi insanlar için tek bir şey kaldı, bir kişiyi bulmak, ona 301 yönlendirmesi kurmasını söylemek ve her şeyi yaptığına güvenmek =))))

      yani hala tam anlatamadım...

      Hayır, hayır, her şey çok mantıklı ve açık bir şekilde yazılmış - teşekkürler!

      Sadece birçoğu tavsiyeleri takip edemeyecek kadar tembel, birçoğu projelerine ciddi bir önem vermiyor, bu yüzden onları akla getirmiyorlar. Ve bazı konularda çelişkili öneriler var. Bu nedenle, robots.txt dosyasında, dosyanın başına sitenin ana aynasının bir göstergesinin yerleştirilmesi önerilir, ardından boş bir satır ve ardından verilerin geri kalanı gelir. Bunun ne kadar doğru olduğuna karar vereceğimi sanmıyorum, ancak bu tavsiyenin yazarı aktif olarak robots.txt dosyasını bu sırayla doldurmakta ısrar ediyor ve yeni başlayanlar bunu nereden anlayabilir?

      Neden hemen tembeller? Beyniniz oturup kodları seçmek için keskinleştirilmişse, diğerlerinde bu hediye yoktur ve hiç başarısız olmamak için ya yapmazlar ya da benim durumumda olduğu gibi bir uzmana döneceğim ve benim için her şeyi ayarlayacak ... Yani. ..

      İsim, seninle ilgili değil!

      Rutin teknik işleri devretmesi şiddetle tavsiye edilen KENDİ işinizde bir uzmansınız.

      Öyleyse - yaratın ve sizi asıl şeyden uzaklaştıran şeyle uğraşmayın.

      Mesele şu ki, "ne olursa olsun" veya "sonra bitireceğim" web siteleri yapan birçok insan var. Bu yüzden zaten bildiklerimi tam olarak uygulamadım bile: asıl işim, başka şeyler araya giriyor ... Evet, bunu yapmamak için her zaman birçok neden vardır. Ancak bu, bir kişi bir şey yapmadığında, ancak zaten başka bir şey aradığında en büyük hatadır. Birikmiş ve uygulanmamış bilgi ne yazık ki işe yaramaz.

    2. 30 Kasım 2013 11:12
    3. 30 Kasım 2013 16:02
    4. anna 30 Kasım 2013 19:59

      Sonunda yönlendirmenin ne olduğunu anladım, özellikle örneklerle her şey iyi açıklanmış. Ve genel olarak, Nikolai'nin ne olduğunu, ne için olduğunu ve onu nasıl hayata geçireceğini açık bir dille söyledikleri için makalelerini takdir ediyorum.

      Bu yazının konusuyla ilgili olarak geriye bir soru kalıyor: www'lü ve www'siz bir alan adı girip sitenin ana sayfasına gelirsek, yönlendirme kurulur ve hiçbir şey yazmanıza gerek kalmaz veya her durumda yazıda belirtilen kodu .htaccess dosyasına yazmanız gerekiyor, varsa dikkat etmiyor musunuz?

      Yönlendirme düzgün çalışıyorsa, .htaccess dosyasına hiçbir şey yazamazsınız. Ancak şahsen, her ihtimale karşı, .htaccess'te bir yönlendirme kaydettim, daha da kötüye gitmeyecek.

      Görünüşe göre www'den yazmayan, yine de siteye giren var mı?

      Bunun CMS'nin işlevselliği olduğunu düşündüm ve bunu hiç düşünmedim ...

      İskender

      Sağ! Bu amaçlar için 301 yönlendirmeleri yapılandırılmıştır. Bu, CMS'nin kendisine dahil değildir.

      Bu yönlendirmenin çalışmayı durdurup durdurmadığını nasıl anlarım? Şimdi her şey harika!

    5. Elena 1 Şubat 2014 22:55

      Bir yorumda bir şeyler yazdım ama gitmedim - bu üzücü. bu daha uzundu.

      Genel olarak okudum ve okudum ve bana hiçbir şey gelmedi.

      Bana her sayfayı nasıl yönlendireceğimi söyleyebilir misiniz?

      Sonuçta, daha sonra, yeni bir sitede dizine eklendiğinde, eski siteden makaleleri kaldırabilir ve yeni sitede kaldırabilirsiniz (her bağlantıda bir yönlendirme vardır) ve genel olarak ne olacak - arama motorları şok olacak ve her şeyi silecek veya yeniden indeksleyecektir.

      Sitenizde bir sayfadan diğerine bir örnek gösterin - nasıl buraya koyabilirim, yoksa yaptım (bilgiyi İnternette buldum) ve hiçbir şey olmadı.

      Yönlendirme 301 /eski sayfa.html site.com/yeni sayfa.html

      Kalıcı yönlendirme /eski sayfa.html site.com/yeni sayfa.com/

      Sizin durumunuzda, bu makalenin paragraflarından birinde benim tarafımdan açıklanan CNC bağlantılarını değiştirirken bir yönlendirme uygundur. Üstelik doğru bir şekilde not ettiğiniz gibi sayfaları yeniden indeksledikten sonra eski siteden makaleleri kaldırmak ve yönlendirmeleri kaldırmak mümkün olacaktır. Arama motorları bu tür değişikliklere normal şekilde tepki verecektir. Bunu normal bir yönlendirme olarak kabul edecekler.

      Ve isteğiniz üzerine blogumda basit bir örnek gösteriyorum. Diyelim ki ziyaretçileri Tüm Blog Makaleleri sayfasından Kurslarım sayfasına yönlendirmek istiyorum. Bu durumda, yapıyı şöyle yazarım:

      yönlendirme 301 vse-stati-bloga.html site/moi-kursy

    6. Paul 25 Mart 2014 23:37

      Ve .htacces dosyamda sadece bu kod kayıtlı

      # WordPress'e BAŞLAYIN

      Motoru Yeniden Yaz

      Kuralı Yeniden Yaz. /index.php [L]

      neyi değiştirmeliyim? Dosya doğru değil mi?

    7. 29 Nisan 2014 10:39

      Nicholas, iyi günler!

      Kendi yazdığım 15 sayfalık bir kartvizit sitesini wp ye çeviriyorum. Site 3 aylık, ancak zaten 10 işaret var, küçük bir tematik katılım var, bu yüzden her şeyi yıkmak istemiyorum. Wp'deki yeni site kurulur ve yapılandırılır, ana sayfalar sunucuda paralel olarak asılı kalır, ancak kullanıcı tarafından görülmez.

      Anladığım kadarıyla, CNC için bir yönlendirme benim için uygun, ayarladıktan sonra ya eski içeriği aktarmanın ya da benzer bir yeni ve el yazısı sayfa yazmanın mümkün olacağı sunucudan yıkılabilir ya da ne?

      Söyleyin lütfen, bir yönlendirmeyi test etmek sadece eski adrese gitmek ve yeni sayfada her şeyin doğru şekilde açıldığını görmek mi? Bu, arama motorlarının onu aynı ışıkta göreceği anlamına mı geliyor?

      Şimdiden çok teşekkür ederim!

      Merhaba Irina!

      Her şeyi doğru anlıyorsunuz... Sizin durumunuzda CNC için bir yönlendirme yeterli olacaktır. Eski sayfalar arama motorları tarafından dizine eklendiyse, eski içeriğin yeniden yönlendirme olmadan yeni bir alana aktarılması kopya olarak kabul edilir, yönlendirme kullanmak daha iyidir. Ve bunu test etmek çok kolay. Eski sayfanın adresini girerken tarayıcı sizi yeni bir etki alanına yönlendirirse, yönlendirme olması gerektiği gibi çalışır ve arama motorları kısa süre sonra içeriği yeniden dizine ekler. İşte o zaman eski sarkan sayfaları sunucudan sorunsuz bir şekilde kaldırmak mümkün olacaktır.

      Nikolay, hızlı cevap için teşekkürler!

      Sadece alan adı eski kalıyor, ben sadece el yazısı versiyonundan wp'ye geçiyorum ve bu kadar.

      Sunucu yanıt kodunu kontrol ettim - beni bekleyen bir sürpriz vardı.

      200OK yerine - 301 yönlendirmeleri. htaccess açıldı. Ve sen ne düşünüyorsun? Görünüşe göre ayarlanmış bir standart var:

      # WordPress'e BAŞLAYIN

      Motoru Yeniden Yaz

      RewriteRule ^index\.php$ - [L]

      RewriteCond %(REQUEST_FILENAME) !-f

      RewriteCond %(REQUEST_FILENAME) !-d

      Kuralı Yeniden Yaz. /index.php [L]

      Söylesene, sunucu yanıtına dikkat etmeden 301 üzerinden bir yönlendirme ayarlayabilir miyim?

      Şimdiden teşekkür ederim!

      301 durum kodu, istenen sayfanın kalıcı olarak yeni bir konuma taşındığı anlamına gelir. Yönlendirmeden .htaccess dosyasındaki standart kural sorumludur. Bu durumda sunucu yanıtının doğru gösterilmesi için, gelecekte yeniden yönlendirmeyi kaldırmak ve eski sayfaları sunucudan silmek mümkün olacaktır.

      Evet, anladım, ancak bu yönlendirmenin nereden geldiği tam olarak belli değil çünkü onu ve htaccess ise nasıl uygulandığını ayarlamadım. orada değil ... Görünüşe göre, wp'de bir dizin sayfası oluşturduktan ve eski el yazısını sildikten sonra sistem tarafından bir şekilde otomatik olarak yapıştırıldı. Şimdi htaccess'teki sayfaların geri kalanına manuel olarak bir yönlendirme yazacağım.

      Makale için teşekkür ederim.

      Nikolai, ben de cevabın hızından dolayı bir soru sormak istedim ama nerede olduğunu bilmiyorum. Nedense site araması benim için çalışmıyor ama konuyu spamlamak istemiyorum.

      Üzgünüm, satırın nerede olduğunu belirtmeyi unuttum

      301 obo-mne.html alan adınız/ob-autore yönlendirmesi

      zaten bitmiş bir yapıya iliştirmek

      # WordPress'e BAŞLAYIN

      Motoru Yeniden Yaz

      RewriteRule ^index\.php$ - [L]

      RewriteCond %(REQUEST_FILENAME) !-f

      RewriteCond %(REQUEST_FILENAME) !-d

      Kuralı Yeniden Yaz. /index.php [L]

    8. Irina 29 Nisan 2014 20:26
    9. Irina 19 Mayıs 2014 22:34

      Nicholas iyi akşamlar!

      Yardımına tekrar ihtiyacımız var!

      Son olarak Yandex, ana ayna olarak www ile site.ru'yu seçti (ve www'siz olduğu için kuş sıfırlandı!)

      Tüm eller ulaşmadı, ama burada gerekli ... Sorun şu ki, el yazısıyla yazılmış bir siteyi yakın zamanda WordPress'e aktardım ve 301 yönlendirmeleriyle zaten yeni adreslere yönlendirilen bağlantıları olan sayfalar, htaccess'im şimdi şöyle görünüyor:

      301 yönlendirme /file.html site.ru/yeni başlık adı/

      # WordPress'e BAŞLAYIN

      Motoru Yeniden Yaz

      RewriteRule ^index\.php$ - [L]

      RewriteCond %(REQUEST_FILENAME) !-f

      RewriteCond %(REQUEST_FILENAME) !-d

      Kuralı Yeniden Yaz. /index.php [L]

      Hem # END WordPress satırından önce hem de dosyanın en üstünde bir yönlendirme eklemeye çalıştım

      - yönlendirme hatası veriyor, hiç bitmeyeceğini yazıyor...

    Birçok kez duydum. Ama hem gerek olmamasından hem de yanlış bir şey yapma korkusundan dolayı böyle bir işleme önem vermemişler. Bu makale, 301 yönlendirmesinin nasıl kurulacağına ayrıntılı olarak bakacaktır.

    Yapılandırması hakkında bir düzineden fazla makale ve bilgi materyali bulabilirsiniz. Ancak birçoğunu inceledikten sonra acemi bilgisayar kullanıcıları ve web yöneticileri kurulumun temellerini anlamakta güçlük çekebilirler. Çevrimiçi bilgi kaynaklarında sağlanan çok sayıda kod ve komut dosyası, çoğunlukla yanlış anlaşılmalara neden olur. Gerçekte, her şey çok daha basit ve bu makale size hizmet edecek Iyi liderlik 301 yönlendirmesi nasıl kurulur.

    301 yönlendirmesi nedir?

    Her şeyi sırayla ele alalım. Öncelikle 301 yönlendirmesini tanımlayalım.İnternetteki (web sitesindeki) bir kaynak konuğun ağdaki başka bir sayfaya veya bir alan adına yapılan en basit yönlendirme olarak anlaşılır. Hemen bir rezervasyon yapalım, bu makale herhangi bir zor komut dosyasını ve çok karmaşık kodu dikkate almayacak, ancak birkaçını gösterecek basit seçenekler herhangi bir web yöneticisi için konuyla ilgili yeterli temel bilgi olan yönlendirmeler.

    - .htaccess dosyası için araç

    .htaccess gibi kullanışlı bir araç düşünün. Üzerinden 301 yönlendirmesi yapmak çok uygun ve kolaydır. Htaccess, doğası gereği, birçok işlevsellik ve birçok özellik içeren yapılandırmada özel bir hizmet dosyasıdır. Bunu kullanarak, site sunucusundaki herhangi bir dizine erişim yasağı ayarlayabilir, sayfa kodlamasını belirleyebilir, klasörler ve dosyalar için koruma ayarlayabilir, 301 yönlendirmeleri gerçekleştirebilir ve diğer bazı eylemleri gerçekleştirebilirsiniz.

    Bu, genel terimlerle bu dosyanın yeteneklerinin bir açıklamasıdır. Aslında, işlevselliği daha da gelişmiştir. Dosyanın adı yoktur ve .htaccess olarak yazılır. En baştaki nokta gereklidir.

    .htaccess dosyası oluşturma prosedürü

    Bu dosya sitenin kök klasöründe yoksa kendi başınıza çok kolay bir şekilde oluşturabilirsiniz. En iyilerinden biri hızlı yollar oluştur - bir FTP istemcisi kullanın. Bunlardan en uygun olanı FileZilla'dır.

    Oluşturmak için, İnternet projenizin kök dizinine gitmeniz gerekir - üzerine tıklayın boş yer sağ düğme Bilgisayar faresi- "Yeni bir dosya oluştur"u seçin - bir ad.htaccess girin - Tamam'a tıklayın. Bu adımlardan sonra oluşturulan dosya düzenlenebilir. Herhangi bir metin editörü ile açılabilir.

    Ancak, FTP istemcileri .htaccess dahil bazı sistem dosyalarını gizlediğinde de olur. Bu nedenle, bu dosya kök klasörde bulunamadıysa, onu oluşturmak için acele etmeye gerek yoktur. Her şeyden önce, gizli dosyalarda varlığını kontrol edin. Bunu yapmak için, "Sunucu" sekmesine gidin ve gizli dosyaların görüntülenmesini zorlamak için kutuyu işaretleyin.

    Böylece .htaccess dosyası oluşturuldu veya bulundu, onu kullanarak 301 yönlendirmesi oluşturmak kolay olacaktır. Ancak öncelikle ne için olduğuna karar vermeniz gerekiyor.

    301 yönlendirmeleri için en yaygın kullanım durumu

    Önde gelen web yöneticilerinin tavsiyelerine göre, Web'deki her kaynağın 301 yönlendirmesi olmalıdır. Ve en popüler durum, gerçekten ihtiyaç duyulduğunda, bileşiminde www öneki olan bir alan adından onsuz bir alan adına veya tam tersi bir yönlendirmedir.

    Bunun nedeni, İnternet'teki herhangi bir site için, www'li veya www'siz yalnızca bir tür alan adının ana alan adı olabilmesidir. Başka bir seçenek, sitenin bir aynası olacaktır. Bir İnternet kaynağının ana aynası, Host yönergesi kullanılarak robots.txt dosyasında imzalanır. Bu dosyaya ek olarak Yandex.Webmaster'da alan adının ana sürümü belirtilmelidir. Birçok arama motoru 301 yönlendirmeleri ile iyidir. Yandex bunun bir istisnası değildir.

    İnternet kaynağının ana aynasını belirtirken, siteniz doğru bir şekilde dizine eklenecek ve oluşturulmayacaktır. gereksiz alımlar. Birçok acemi web yöneticisi, gelecekte büyük sorunlara neden olacak çok büyük bir hata olan site aynalarını hiç duymamıştır.

    Site aynası ayar değeri

    Mirror ile yapılan tüm işlemlerden sonra arama motorları otomatik olarak ana domaini belirleyecektir. Yönlendirmeyi kolayca kontrol edebilirsiniz, her şey yolunda gidecektir. Bu eylemlerde durmak mümkün olabilir, ancak bir İnternet kaynağının SEO optimizasyonu için en iyi yol, ek olarak bir yönlendirme ayarlamak olacaktır.

    Atamadaki www ön ekinin kendisi uzun zaman önce unutulmuş olmalıydı. Bununla birlikte, internette hala başlığında www olan birçok kaynak bulunmaktadır. Arama motorları için www'li ve www'siz alan adları iki farklı adrestir. Evet ve birçok kullanıcı, belirli bir İnternet projesini ararken, adres çubuğuna www ile bir seçenek yönlendirir. Bu nedenle, bu önek hala yerinde. Bu gerçeğe dayanarak, aynaların ayarlanması gerekli bir işlemdir. İnternet projenizin arama motorlarında başarılı bir şekilde dizine eklenmesi için 301 yönlendirmesinin nasıl kurulacağına ilişkin kılavuz da mutlaka okunması gereken bir kitaptır.

    Yanlış ayna ayarının sonuçları

    301 yönlendirmelerinin önemini ve aynaların doğru konfigürasyonunu tam olarak anlamak için, yanlış işlemlerinin zararlı sonuçlarını vurgulayalım. Çok değil, sadece iki tane var. Ancak her bir öğenin ağırlığı çok yüksektir.

    Diğer kullanıcıların ve sitelerin kaynağınıza nasıl bağlanacağıyla doğru orantılı olarak, www içeren ve içermeyen etki alanları arasında bölüneceklerdir. Bu, İnternet projenizin trafiğini ve arama sonuçlarındaki yerini olumsuz yönde etkileyecek bazı bağlantıları kaybedeceğini gösterir. Ancak asıl sorun bu değil.

    Birçok web yöneticisi, arama motorlarının sürekli olarak İnternet kaynaklarının içeriğinin benzersizliği için savaştığını anlıyor. Bilgilerin kopyalanmasına karşı çok olumsuz bir tavırları var ve benzer içeriğe sahip siteleri, arama sonuçlarında tamamen engellenene kadar oldukça ciddi şekilde cezalandırıyorlar. Şimdi şu durumu açıklayalım: kaynağınız en başından beri www önekiyle dizine alındı, ancak zamanla www'siz alan adı aldı Daha ziyaret ve popülerlik (daha sık atıfta bulunuldu ve daha sık bahsedildi).

    Bu konuda hiçbir şey bilmiyorsunuz ve projenizi daha da geliştiriyorsunuz. Zamanla benzersiz içerik, birçok bağlantı ve yorumla dolar. Arama motorları, www ön eki olmayan bir kaynağı izlerken özgün olmayan içerik nedeniyle yasağı gönderdi. Zamanla, endekslenmekten tamamen vazgeçecektir.

    Bu durumu önlemek için .htaccess dosyası bulunmaktadır. İçinde yazılan 301 yönlendirmesi, bir kaynağı www ile ve yokluğuyla etki alanlarına bölme sorununu çözebilir.

    www etki alanından ön ek olmadan yönlendirme ve tersi

    Bu durumda yönlendirme nasıl kurulur? Burada her şey basit. .htaccess dosyasını açmanız ve içine aşağıdaki betiği yazmanız gerekiyor.

    www etki alanından onsuz yönlendirme:

    Motoru yeniden yaz
    RewriteCond %(HTTP_HOST) ^www.moydomen.com
    RewriteRule ^(.*)$ http://moydomen.com/$1 .

    Ve başka bir şekilde:

    Motoru Yeniden Yaz
    RewriteCond %(HTTP_HOST) ^moydomen.com
    RewriteRule (.*) http://www.moydomen.com/$1 .

    Lütfen her iki durumda da moydomen.com yerine İnternet kaynağınızın adresini belirtmeniz gerektiğini unutmayın!

    .htaccess dosyasını kaydetmeli ve kök klasöre taşımalı ve ardından önceki dosyayı değiştirmelisiniz. Artık ziyaretçi her durumda, site adresi girildiğinde (hatta http ile, hatta onsuz, hatta www ile, onsuz bile) ana sayfaya yönlendirilecektir. www olmadan www'ye 301 yönlendirmesinin nasıl kurulacağına baktık. Şimdi diğer kullanımlarına bakalım.

    Bir İnternet projesi etki alanından diğerine geçiş

    Bir İnternet projesi etki alanından diğerine geçerken yukarıda verilen benzer bir yönlendirme şeması kullanılmalıdır. Göstermek için bir örnek alalım. Diyelim ki moysait-1.com'dan moysait-2.com'a geçmek istiyorsunuz. Bu durumda, kodu .htaccess dosyasına yazmalısınız:

    Motoru Yeniden Yaz
    RewriteCond %(HTTP_HOST) moysait-1.com
    RewriteRule (.*) http://moysait-2.com/$1 .

    CNC bağlantılarını değiştirme ve aynı anda yeniden yönlendirme

    Zaman zaman değiştirmek gerekiyor, büyük ihtimalle öyle bir durum oldu ki, kaynağınızdaki tüm bölümün değiştirilmesine karar verildi. Veya site sahibi CNC linkleri hakkında hiçbir şey bilmiyordu ve blog zaten vardı ve materyallerle doluydu. Bu durumda, bir yönlendirme yardımcı olabilir. Bu durum için 301 yönlendirmesi nasıl kurulur? Bu durumda, tüm sayfa göstergelerinin (bağlantılar, arama sonuçlarındaki ağırlıkları) aynı kalması önemlidir.

    Basit bir örnek verelim. Sayfanın moya_infa.html olan adının obo_mne.html olarak değiştirilmesine karar verildi. Bu durumda kodu .htaccess'e yazmanız gerekir: redirect 301 moya_infa.html http://www.moydomen.com/obo_mne.html.

    Benzer şekilde sayfadan sayfaya 301 yönlendirmesi yapılır.

    Dosya uzantısını değiştirirken yönlendir

    Başka bir örnek verelim. Web yöneticisinin moya_stranichka.html dosyasının uzantısını moya_stranichka.php olarak değiştirmesi gerekiyor. Son paragraftaki gibi .htaccess'te şu kodu yazıyoruz: redirect 301 moya_stranichka.html http://www.moydomen.com/moya_stranichka.php.

    Bağlı kuruluş programları için yönlendirme

    Örneğin, bir site ziyaretçisini bağlı kuruluş programı olan bir sayfaya yönlendirmeniz gerekir. Ortaklık programı bağlantısının kendisi www.partner.com/?ref=16011 gibi görünür. Böyle bir bağlantıyı fark eden kaynağa gelen birçok ziyaretçi, niyetinizi önceden tahmin ederek onu takip etmeyecektir.

    Bağlantıya uygun formu vermek için, örneğin dlya_druzei.html gibi ayrı bir sayfa oluşturmanız gerekir; buradan ortaklık programıyla sayfaya yönlendirme yapılır. Yalnızca .htaccess dosyasını düzenlemek için kalır: 301 dlya_druzei.html http://www.partner.com/?ref=16011 yönlendirmesini yapın.

    CMS Joomla'da 301 yönlendirmesi nasıl yapılır

    Birçok İnternet kullanıcısı muhtemelen bir 404 hata sayfası görmüştür. Joomla motoru sayfadan sayfaya yönlendirmenin zaten birkaç yerleşik yolu vardır. Ancak, her zaman işe yaramazlar. ve anlamak çok zor normal kullanıcı. 301 yönlendirmesinin imdada yetiştiği yer burasıdır Joomla'nın standart bileşiminde, yukarıda açıklanan tüm işlemleri gerçekleştirebileceğiniz bir .htaccess dosyası vardır.

    Web projenizin tüm sayfaları için yönlendirmeler ayarlayalım. Her şeyden önce, dizinde htaccess.txt dosyasını bulmanız ve ona doğru adı.htaccess vermeniz gerekir. Bundan sonra, yönetici panelinde yönlendirme ayarlarına CNC'nin (SEF) dahil edilmesini ayarlamalı ve yönlendirme URL'sini kontrol etmelisiniz.

    Ardından .htaccess dosyasını açmalı ve gerekli yönlendirmeler için kuralları içine yazmalısınız.

    PHP ile yönlendirme

    Herhangi bir nedenle .htaccess dosyasına erişim yoksa veya kapatılırsa, farklı bir 301 yönlendirmesi yapmanın bir yolu vardır, PHP bu konuda yardımcı olacaktır.

    Tüm parametreleri kaydederek etki alanından etki alanına yönlendirme yapmak için, herhangi bir metin düzenleyicide .php uzantılı bir dosya oluşturmanız, dizini adlandırmanız ve aşağıdaki komut dosyasını oraya kopyalamanız gerekir:

    if ($ref!="") $ref="?".$ref;header("HTTP/1.1 301 Kalıcı Olarak Taşındı");

    header("Konum: http://moydomain.com/".$ref);

    Burada moydomain.ru yönlendirmenin yapıldığı alan adıdır. Ortaya çıkan dosya, sitenin ana dizinindeki sunucuya yüklenmelidir.
    Aynı domain veya farklı domain içerisinden sayfadan sayfaya yönlendirme yapabilmek için transfer edilen sayfanın ana kodundan önce aşağıdakini eklemeniz gerekmektedir:

    header("HTTP/1.1 301 Kalıcı Olarak Taşındı");

    header("Konum: http://www.moydomain.ru/moycategory/moypage.htm");

    Sonuç olarak, www.moydomain.ru/moycategory/moypage.htm yönlendirilen yeni bir sayfadır.

    Yukarıdaki betiğin koda eklendiği sayfanın adının sonunda .php uzantısının olması gerektiğini dikkate almak önemlidir. Aksi takdirde, .htaccess yoluyla bir yönlendirme kullanmanız gerekecektir.

    Şimdi, makaleyi okuduktan sonra, herhangi bir web yöneticisi 301 yönlendirmesinin nasıl kurulacağını, ne olduğunu ve nasıl yararlı olduğunu bilecektir. Bu, yönlendirmeler için en temel kullanım durumlarını gösterir. Ancak, herhangi bir site ve blog sahibinin onlar hakkında bir fikri olması gerekir. Ve yalnızca yönlendirmeyi doğru şekilde ayarlamanın değil, aynı zamanda doğru çalışıp çalışmadığını kontrol etmenin de önemli olduğunu dikkate almaya değer.

    Gördüğünüz gibi yönlendirmeler sadece .htaccess dosyası kullanılarak değil, birçok CMS'nin standart özellikleri ve PHP betikleri kullanılarak da oluşturulabilir.

    Kurallar Apache sunucusu için verilmiştir. Kurallarda: %(QUERY_STRING) - soru işaretinden sonra bir URL parçasını belirtir (CGI parametre değerlerini ayarlar). Bir yönlendirme için şu veya bu kuralın tetiklenmesi, sayfanın URL'sinin bu kuralın kapsamına girip girmediğine göre belirlenir. Belirli tanımlamaların anlamı hakkında (^, $, NC, vb.).

    301 yönlendirmeleri için en sık kullanılan .htaccess dosyası yapılandırma kuralları aşağıdadır. Tüm kuralları iki satırdan sonra yerleştirmek daha iyidir:

    Seçenekler +FollowSymLinks Yeniden YazmaMotoru Açık RewriteCond %(HTTP_HOST) ^site\.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1 RewriteCond %(HTTP_HOST) ^www.site\.ru$ RewriteRule ^(.*)$ http://site.ru/$1 Yönlendirme 301 /was.php http://www.site.ru/new.php

    Bu durumda yeni adresin http ve alan adı ile birlikte eksiksiz olarak belirtilmesi gerekmektedir.

    RewriteRule ^dir /dir-new/$1

    Diyelim ki sayfa adresi şöyle görünüyor: http://www.site.ru/dir/index.php?IBLOCK_ID=1&SECTION_ID=111 , ardından yeni bir adrese 301 yönlendirmesi ayarlamak için aşağıdaki kuralı kullanmalısınız:

    RewriteCond %(QUERY_STRING) ^IBLOCK_ID=1&SECTION_ID=111$ RewriteRule ^dir/index\.php$ /new/sef/?

    GET parametrelerinden biri (veya birkaçı) ayarlanmamışsa veya isteğe bağlı bir değere sahipse (bizim örneğimizde bu, SECTION_ID'dir), aşağıdaki kodu kullanabilirsiniz:

    RewriteCond %(QUERY_STRING) ^IBLOCK_ID=1&SECTION_ID=(.*)$ RewriteRule ^dir/index\.php$ /new/sef/?

    Yalnızca http://www.site.ru/dir/ adresi için, ancak aynı zamanda http://www.site.ru/dir/index.php?IBLOCK_ID sayfası için bir yönlendirme ayarlamak istiyorsanız =1 eski adreste açılıyor, kuralda $ özel karakterini kullanmanız gerekiyor.

    RewriteRule ^dir/$ http://www.site.ru/new-dir/

    RF bölgesindeki etki alanları için aynı kuralların tümü geçerlidir, ancak yalnızca tüm Kiril karakterleri alternatif bir kodla (Latince'dir) değiştirilmelidir. Özellikle zone.rf'nin kendisi .xn--p1ai'ye dönüştürülür.

    RewriteCond %(HTTP_HOST) ^old-site\.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1

    Ve RF bölgesindeki bir etki alanı için:

    RewriteCond %(HTTP_HOST) ^xn-...\.xn--p1ai$ RewriteRule ^(.*)$ http://www.site.ru/$1 RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_URI) !\..(1,10)$ RewriteCond %(REQUEST_URI) !(.*)/$ RewriteRule ^(.*)$ http://www.site. ru/$1/ RewriteCond %(REQUEST_FILENAME) !-d RewriteCond %(REQUEST_URI) ^(.+)/$ RewriteRule ^(.+)/$ http://www.site.ru/$1 RewriteCond %(HTTP_HOST) ^si-te\.ru$ RewriteRule ^(.*)$ http://www.site.ru/si-te/ RewriteRule ^bitrix/ /bitrix/admin/ RewriteRule ^(.*)$ http://www.newsite.ru/new/ RewriteRule ^dir(.*)$ /new-file.php RewriteRule ^dir/no-file.html /no-file-new.html RewriteRule ^dir(.*)$ /all.php RedirectMatch 301 (.*)\.html$ http://www.new-site.ru$1.php

    Dizinin kökünde bulunan dizin dosya türlerinin yükleme sırasını belirtir.

    DirectoryIndex index.html index.php index.htm index.shtml RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://www.site.ru/ RewriteCond %(HTTP_HOST) ^test.site.ru$ RewriteRule ^(.*)$ http://site.ru%(REQUEST_URI) RewriteRule [^abc]/unique-file.html /unique-file.html

    Kod, http://site.ruuniqe-file.html gibi tüm klasörlerden /unique-file.html kökündeki bir dosyaya bir 301 yönlendirmesi koymanıza izin verir. Siteyi yeniden tasarlarken ve bağlantıları değiştirirken faydalı olabilir.

    RewriteRule ^testovyi/test/?$ /studio/news/detail.php?ID=230354&PAGEN_2=11

    Kod, /testovyi/test/ konumunda /studio/news/detail.php?ID=230354&PAGEN_2=11 ilgili adresine sahip sayfanın bir kopyasını oluşturmanıza olanak tanır.

    Dikkat, 404 hatası için sunucu yanıt kodunun tam olarak 404 olması önemlidir. Dosyanın yolu aşağıdaki satır kullanılarak belirtilir:

    ErrorDocument 404 /404-for-me.php RewriteCond %(HTTP_HOST) ^(+)\.site\.com$ RewriteRule ^(.*) http://site.com/$1 RewriteCond %(HTTP_HOST) ^(+)\.site\.com$ RewriteCond %(HTTP_HOST) !=one.site.com RewriteRule ^(.*) http://site.com/$1

    Tüm kurallar, .htaccess dosyasında göründükleri sırayla yürütülür ve daha sonra yazılan kural daha sonra yürütülür.

    Apache sunucusunu kullanmayan siteler için, benzer 301 yönlendirmeleri PHP kullanılarak kolayca yapılandırılır:

    Tüm yönlendirmeleri hemen son sayfaya (tek adımda ara yönlendirmeler olmadan) yapılandırmak en uygunudur, bu, arama motorları ve kullanıcılar tarafından algılanmalarını geliştirir.

    RewriteCond %(HTTP_USER_AGENT) (iPad|ipad|iphone|iPhone|ipod|iPod|android|midp|j2me|symbian|series\ 60|symbos|windows\ mobile|windows\ ce|ppc|akıllı telefon|böğürtlen|mtk|bada| windows\telefon)

    RewriteRule (.*) http://mobile.site.ru/

    RewriteCond %(HTTP_USER_AGENT) ! (accoona|ia_archiver|antabot|ask\ jeeves|baidu|dcpbot |eltaindexer|feedfetcher|gamespy|gigabot|googlebot |gsa-crawler|grub-client|gulper|slurp|mihalism|msnbot|worldindexer |ooyyo|pagebull|scooter|w3c_validator |yapboz|webalta|yahoofeedseeker |yahoo!\ slurp|mmcrawler|yandexbot|yandeximages |yandexvideo|yandexmedia|yandexblogs|yandexaddurl|yandexfavicons |yandexdirect|yandexmetrika|yandexcatalog|yandexnews |yandeximageresizer)

    RewriteRule (.*) http://no-search.site.ru/

    www.site.ru/component/content/?view=featured adresinden www.site.ru/'a yönlendirme

    RewriteCond %(QUERY_STRING) ^view=featured$ RewriteRule ^component/content/?$ /?

    RewriteCond %(QUERY_STRING) ^idc=4&marea=6$ RewriteRule ^index\.php$ /? . - Nokta rastgele bir karakterin yerini alır. - a, b veya c harfleriyle eşleşen karakterlerin listesini belirtir. [^abc] - belirtilen aralığa dahil olmayan karakterlerin listesi. a, b veya c dışında herhangi bir karakterle eşleşir. * - önceki karakterin tekrar edilebileceği anlamına gelir (0 veya daha fazla kez). * - komut, belirtilen kümeden ardışık karakterleri bulacaktır. [^abc]* - tam tersi. .* - kesinlikle herhangi bir karakter kümesinin yerine geçer. ".*" - tırnak işaretleri arasındaki tüm alt dizileri bulur. ^ - bir dizenin başlangıcı (bir ifadenin başında kullanılıyorsa). $ - satırın sonunu işaretler. \w - harf, sayı veya alt çizgi _. \d - herhangi bir rakamı değiştirir. \D - herhangi bir karakteri değiştirir, ancak bir sayıyı değiştirmez. - herhangi bir sayının yerini alır. - a'dan z'ye kadar herhangi bir harf (tüm Latin karakter kümesi) küçük harfle. - BÜYÜK harfle A'dan Z'ye herhangi bir harf. - her durumda a'dan Z'ye herhangi bir harf. - aynısı. RewriteRule(.*) $1?

    Şundan sonraki konum: RewriteBase /

    Kullanılan semboller ve notasyon hakkında not

    RewriteCond satırı, RewriteRule'u çalıştırmak için bir koşuldur. Koşul karşılanırsa, yönlendirme tetiklenir. Kurallar kullanılarak ayarlanabilir düzenli ifadeler.
    Kurallarda kullanılan özel karakterler ve anlamları.

    ^ - satırın başındaki özel karakter;
    $ - özel karakter yolun sonu;
    ! - olumsuzlama özel karakteri;
    . - nokta, yalnızca bir karakter olmak üzere herhangi bir karakterin yerine geçer;
    () - gruplama;
    \ - "kaçan" eğik çizgi, ondan sonraki karakter özel bir karakter değil, normal bir karakter olarak kabul edilir.

    Değiştiriciler, sıradan, özel karakterlerden veya bunların gruplarından sonra kullanılır ve tetikleme kuralları için şablon olanaklarını genişletmenize olanak tanır.

    Karakter 0 veya 1 kez tekrarlanır.
    + - 1 ila 65536 kez tekrar eder.
    * - 0 ila 65536 kez tekrar eder.

    Bayraklar, ek olarak ayarlayın. kullanılacak kural için seçenekler. Listelenen köşeli parantez virgülle ayırarak veya deyin.

    NC - Kural tetiklendiğinde karakterlerin durumunu kontrol etmeyi devre dışı bırakan NoCase bayrağı.
    R - flag Redirect, URL değişikliğini durdurma işlemini gerçekleştirir ve sonucu döndürür. En sık kullanılan değer R=301'dir, ancak geçici yeniden yönlendirmeler için başka değerler de kullanılabilir (302, MOVED TEMPORARY ).
    L - Son bayrağı, URL'nin oluşumunu durdurur ve satır son olarak kabul edilir.

    • Yönlendirme 301 - yönlendirme teorisi ve uygulaması, ayarlar ve kullanım kuralları

    güncelleme:

    RewriteCond %(SERVER_PORT) !^443$ RewriteRule .* https://%(SERVER_NAME)%(REQUEST_URI)

    RewriteCond %(SERVER_PORT) ^443$ RewriteCond %(HTTPS) =on RewriteRule ^(.*)$ http://your_site.com/$1

    Merhaba arkadaşlar. Bugün çok hileli ama her zaman alakalı bir konuyu tartışmak istiyorum - bu 301 Yönlendirme (Kalıcı Yönlendirme 301) - seo-partide ve formaliteler olmadan, "yönlendirme" kelimesinin tam olarak kastettiği şey budur. Teknik olarak bu, sunucunun kendisine yapılan bir çağrıya verdiği yanıttır, bu yanıt, aramanın adresinin kalıcı olarak değiştirildiğini (kalıcı olarak taşındığını) belirten bir 301 koduna sahiptir. Tüm bu kurnaz entrikaların bir sonucu olarak, yeni bir son adres almalıyız.

    Bunlara ihtiyacın olmadığına inanıyorum teknik yönler, ve bu nedenle uygulanan şeylerden bahsetmek istiyorum - ne zaman ve hangi durumlarda yönlendirme kullanmak daha iyidir, yönlendirme kurallarını nasıl ve hangi komutlarla ayarlayabilirsiniz, vb. Ayrıca yönlendirmelerin doğruluğunu kontrol edebileceğiniz araçları ve hizmetleri de göz önünde bulundurun.

    Gönderi çok büyük geldiği için yapmaya karar verdim. size kolaylık sağlamak için içindekiler tablosu:

    301 yönlendirmesi ne zaman yapılmalı

    Her şeyden önce, bir sayfa (bir sayfa grubu veya tüm bir bölüm) adresini değiştirdiğinde bir yönlendirme uygulanır.- çoğu zaman bu, sitenin yapısını değiştirirken, url'nin temel bölümünü yeniden adlandırırken veya adres oluşturma ilkesini değiştirirken (başka bir deyişle CNC) olur. Ne yazık ki, sitede bir şeyi değiştirdiklerinde herkes bunu düşünmüyor ve sonuç olarak, çok sayıda kopya var, bu da konum kaybına ve hatta arama motorlarından yaptırımlara yol açıyor. İşimde bu tür durumlarla çok sık karşılaşıyorum ve her şeyi düzeltmek ve sonuçları eşitlemek çok fazla sinire mal oluyor. Kendi adıma, CNC'nin türünü veya yapısını değiştirmeye yönelik herhangi bir çalışmadan önce, sitenin mevcut yapısı, tüm bölümleri ve son sayfa örnekleri için bir plan hazırlamanızı tavsiye edebilirim. Tüm bunların iş tamamlandıktan sonra kontrol edilmesi gerekecek, böylece eski adrese gittiğimizde yeni adrese ulaşıyoruz ve sunucu 301 koduyla (302 değil) bir yönlendirme veriyor.

    301 yönlendirmeleri için bir sonraki yaygın kullanım durumu, site adresini değiştirmek veya ikizleri birleştirmek.Şirketin yeniden markalaşmasıyla bağlantılı olarak site adresini değiştirmeye veya basılı promosyon ürünlerinde belirtmek için yeni, daha güzel ve daha kısa bir alan adı kaydettirmeye karar verirseniz, kullanıcının eski alan adındaki adrese erişirken aynı sayfaya gider (ve ana sayfaya değil), ancak yeni bir etki alanında. Promosyon sitelerine gelince, bunlar genellikle bir veya iki sayfadan oluşur, ana siteye yönlendiren bağlantılar veya promosyon sitesine gittiğinizde hemen yönlendirirsiniz. özel sayfa Ana site. Bazen, bir site oluştururken, örneğin Latince'de şirket adının belirsiz yazılışı nedeniyle birkaç alan aynı anda kaydedilir. Kullanıcı, adresi sezgisel olarak yazarak doğru yere ulaşır ve birkaç alan adı kaydedilir - tüm "yardımcı" alanlardan tek bir ana adrese 301 yönlendirmesinin yapılması çok önemlidir. Hiçbir durumda aynı sitenin tüm adreslerde bulunmasına izin vermemelisiniz.

    Ve aynalar hakkında daha fazlası - sitenize http://www.site.ru, http://site.ru ve https://site.ru adreslerinde erişilebilir olabilir.(ikincisi nadirdir, ancak olur) - bunların hepsi yapılmaması gereken klasik hatalardır ve çözümlerinde 301 yönlendirmeleri yer alır. Farklı site adreslerinde olduğu gibi, ana aynaya (www'li veya www'siz) karar vermeniz ve ana aynaya yönlendirmeler ayarlamanız gerekir. Elbette, arama motorları aptal değildir ve bu tür durumlarla genellikle kendi başlarına başa çıkarlar ve siz de onlara yardımcı olabilirsiniz. doğru ayarlar web yöneticisi panellerinde ve robots.txt dosyasında (Yandex, Host yönergesi için). Ancak seo hassas bir konudur ve şansa güvenmezdim, kanıtlanmış bir yöntem kullanırdım!

    Bazen, yalnızca adres çubuğuna alan adını değil, aynı zamanda sunucunun IP adresini de girdiğinizde sitenin bir kopyası mevcut olduğunda çok hoş olmayan bir durum ortaya çıkar. Bu durumun paylaşılan bir barındırmada gerçekleşmesi pek olası değildir, ancak özel bir sunucunuz varsa, o zaman kolayca. Yanlış sunucu ayarlarının nedeni bu olabilir - ip adresine erişirken erişim yeteneğinin devre dışı bırakılması sorunun çözülmesine yardımcı olacaktır, ancak web sunucusu düzeyinde (Apache veya nginx) 301 yönlendirmesi burada en iyi şekilde yardımcı olacaktır. Birkaç ay önce böyle bir durum yaşadım - bazı sitelerin asılı olduğu özel bir sunucum vardı, ancak sitelerden biri için başka bir ayrı sunucu almaya karar verdim. Siteyi aktardım, her şey saat gibi çalıştı ve sonra bir gün Google sonuçlarında sitemin bir klonuyla karşılaştım - şok, panik - bunun yeni sunucumun ve tabii ki sitemin ip adresi olduğu ortaya çıktı üzerinde yaşıyor ve girdiğimde sunucu 200 OK yanıtı veriyor ve Google tamamen indeksledi. Önceki sunucuda böyle bir sorun yoktu, başlangıçta bu ip için ana alan olarak belirtilen etki alanına ip'den bir 301 yönlendirmesi yapılandırılmıştı. Şimdi acı deneyimlerden öğrendim ve bu tür şeyleri her zaman kontrol edin - farkında olun ve hataları tekrarlamayın. nginx 301 web server configlerine main domaine bir yönlendirme eklenerek sorun çözüldü, aşağıdaki yazının pratik kısmında bir kod örneği göstereceğim.

    Durum öncekine benzer - sitenin bir kopyası bulunduğunda ve bir hizmet test etki alanı aracılığıyla kullanılabilir olduğunda, örneğin site.hosting.ru. Benim muayenehanemde de bu tür durumlar meydana gelir ve önceki durumun aksine, bu, paylaşımlı barındırma için tipiktir. Bu neden var? Örneğin, henüz bir alan satın almadınız veya bir siteyi bir barındırmadan diğerine aktarıyorsunuz, ancak alan için NS sunucuları değiştirilmedi veya sağlayıcının DNS kayıtları henüz güncellenmedi. Bu gibi durumlarda, site adresini yeniden yönlendirmeden önce her şeyi yapılandırabileceğiniz ve yükleyebileceğiniz test adresleri oluştururlar. yeni barındırma. Ve bazı barındırıcılar, bu tür teknik adreslere erişimi engellemeyerek ve aynı zamanda endekslemelerini bile yasaklamayarak günah işlerler. Siz de bu hoş olmayan duruma sahipseniz, .htaccess dosyasındaki teknik adresten ana adrese bir 301 yönlendirmesi kaydetmeyi denemelisiniz.

    Ve elbette, 301 yönlendirmeleri, çeşitli sayfa kopyalarıyla başa çıkmak için doğru SEO araçlarını kullanmayı çok sever. Neden sadece doğru SEO'lar? Evet, çünkü müşterinin sitesinde yanlış penis atıldı ve büyük olasılıkla siteye gitmeden bağlantı satın almaya başladılar - ne yazık ki bu alışılmadık bir durum değil. Siteyi optimize etmek ve tanıtmaktan sorumlu yüklenicilerinin / çalışanlarının bütünlüğünü, işin ne kadar iyi gittiğini kontrol etmek isteyen müşteriler bana periyodik olarak yaklaşıyor - - ve şimdiye kadar hiçbir hata veya eksiklik bulmadım. Siteler. Bu nedenle, aklınızda bulundurun - size yardımcı olmaktan her zaman mutluluk duyarım. Tekrarlara geri dönelim - Bence kopyaları indekslemeden kapatmak yerine ana adrese yönlendirmeniz gerekiyor ve bu o kadar da ilginç değil. Elbette, çoğaltmaların zorlandığı ve ardından kanonikleştirmenin vazgeçilmez olduğu birçok durum vardır, ancak yeniden yönlendirme yapmak mümkünse, yaptığınızdan emin olun. Her zaman kontrol edilmesi gereken sık sık yinelenen durumlar: sonunda eğik çizgi olan ve olmayan adresler, parametreli ve etiketli adresler - Bunu nasıl çözeceğinizi aşağıda anlatacağım.

    301 yönlendirmesi yapabildiğiniz zaman

    Bu bölüme pek yazmayacaksın ama deneyeceğim. Umarım okuduktan sonra yorumlarda bana birkaç fikir katarsınız.

    Yönlendirme 301, 404 hatası yerine sunucu yanıtı olarak kullanılabilir bulunamadı - başka bir deyişle, yanlış bağlantıya veya var olmayan bir sayfaya giden kullanıcı, “Üzgünüz, bu sayfa artık mevcut değil” mesajını görmeyecek, mevcut başka bir sayfaya taşınacaktır. Bu uzmanlar arasında çok tartışmalı bir nokta ve bu nedenle fikrimi kimseye empoze etmiyorum. Ancak 404 hatası yerine yönlendirme kullanmayı tercih ediyorum ve olayların gelişimi için birkaç seçenek var ... Bakın, 2 404 hatası kategorisi var: ilki, sayfa gerçekten silindiğinde klasik olanıdır, ikincisi, hatanın çarpık dış bağlantılarla ilişkilendirildiği zamandır. İlk durumda, muhtemelen bir yönlendirme yapmamalı, 404 hatasını olduğu gibi bırakmalısınız. Ancak ikinci durumda, bozuk bir bağlantıdan geri yüklenebiliyorsa veya ana sayfaya (veya kategoriye) yeniden yönlendirilebiliyorsa, doğru url adresine yönlendirmeye dikkat etmelisiniz.

    301 yönlendirmesi ne zaman YAPILMAYACAKTIR?

    Bir yönlendirmenin size ne zaman zarar verebileceği ve bu nedenle aşağıdaki durumlarda kullanmamanız gerektiği hakkında birkaç söz.

    En önemlisi, hata yapmamak için, ne yaptığınızdan %100 emin değilseniz veya bir konuda şüpheniz varsa yönlendirmelerle uğraşmamalısınız. Bunu dostça bir tavsiye olarak kabul edin :)

    Kalıcı yönlendirme geçici çözümler için kullanılmamalıdır., adından bellidir - geçici olarak taşımak için 302 Moved Temporarily kullanın. Bu durumda, sayfalar birbirine yapıştırılmayacak ve yönlendirmeli sayfa herhangi bir zamanda geri yüklenebilir.

    Alan adınızla ilgili filtre, ban vb. sorunlar varsa ve site adresini değiştirmeye karar verdiyseniz(etki alanı), o zaman eski etki alanından yenisine 301 yönlendirmesi yapmamalısınız - sonuç olarak, eskisinin tüm sorunlarını yeni etki alanına "yapıştıracaksınız". Yani, sonunda hiçbir şey değişmeyecek. Evet, bir süredir eski etki alanından yenisine tam bir 301 yönlendirmesi kullanarak Penguin Google filtresinden çıkmak için bir çözüm vardı. Gerçekten de tüm pozisyonlar yaptırımlardan önceki seviyeye getirildi ve bu kötü Penguen için her derde deva gibi görünüyordu ancak algoritmanın bir sonraki güncellemesiyle bu özellik dikkate alındı ​​​​ve yeni alan da filtrenin altına düştü. sonuç olarak, etki alanı değişikliğinden sonra hiçbir gelişme olmadı. Etki alanını zaten değiştirmeye karar verdiyseniz, tüm içeriği yeni etki alanına aktarmayı deneyebilir ve eski alandan silebilir ve taşıma hakkında bir mesaj içeren bir saplama asabilir veya daha da iyisi, her şeyi sıfırdan başlatabilirsiniz. .

    301 yönlendirmesi yapmanın birçok yolu vardır: htaccess, php, javascript, sunucu ayarları vb. Farklı yollar ve örneğin sonsuz bir döngüsel yeniden yönlendirme elde edebilirsiniz.

    Karmaşık bir site yapısıyla çalıştığınızda veya büyük bir portalda yeniden çalıştığınızda, genellikle birden çok yeniden yönlendirme veya uzun zincir oluşur. Bu, yönlendirmenin bir adımda değil, iki veya daha fazla adımda gerçekleştiği anlamına gelir - bu kötü bir durumdur ve mümkünse kaçınılmalıdır. Böyle bir bağlantıyı takip ederken, arka arkaya birkaç yönlendirme alan arama robotu, aldatıldığını düşünebilir ve daha fazla takip etmeyi bırakabilir ve genellikle bağlantıları dikkate almayı bırakabilir. Denetim için bu kadar beklenmedik bir zincire sahip bir siteyle karşılaştığımda, uygulamamdan bir örnek:

    http://site.ru/tax/term/30 ->
    http://www.site.ru/tax/term/30 ->
    http://www.site.ru/tax/term/30/ ->
    http://www.site.hosting.ru/404.php ->
    http://www.site.ru/404.php

    Ve sonuç olarak, 404 hatası döndürmesi gereken http://www.site.ru/404.php sayfası, 200 OK yanıtı döndürür. Hatta aklımı başımdan aldı ama bir arama robotunun böyle bir atlıkarıncanın içine girse ne düşüneceğini bir düşünün! Sadece zincire üç farklı alan katılmadı, ayrıca hata sayfası bunun bir hata olmadığını ve dizine eklenmesi gerektiğini söylüyor.

    Mümkünse, site içinde yönlendirme olmaması için çaba gösterin- siteye verilen harici bağlantılar artık düzeltilemiyorsa ve yeniden yönlendirme kaçınılmazsa, o zaman dahili bağlantılar düzeltilmelidir. Belki bu, indeksleme ve sıralama kalitesini etkilemeyecektir, ancak emin olamazsınız ve bu nedenle bu tür tartışmalı durumlardan kaçınmak daha iyidir. Dahili yönlendirmeleri ve genel olarak site içindeki hataları takip ederken, harika bir tanesi size yardımcı olacaktır.

    .htaccess'te yönlendirme kurallarını derlerken, sunucudaki dizinlerin ve dosyaların gerçek adreslerini hariç tutun ve seçimi izleyin. Bir zamanlar bana denetim yaptıran bir sitenin durumu, sonunda eğik çizgi olan ve olmayan yinelenen kategori sayfalarına karşı mücadelede, web yöneticisinin bunu biraz abartması ve aksine sorunu yalnızca şiddetlendirmesidir. Gerçek js-scripts ve css-style dosyaları yeniden yazma kurallarının kapsamına girerek düzgün çalışmamalarına neden olmakla kalmadı, aynı zamanda bazı sayfaların sonunda gereksiz bir eğik çizgi oluştu ve kopyalar ortaya çıktı. Arkadaşlar, oluşturduğunuz kuralların yalnızca çalıştığınız adres grubu için geçerli olduğundan emin olun ve diğerlerini sınırlayın.

    Kurtulmanız gereken sorunlu sayfaları ve adreslerini bulmak için Yandex ve Google'ın web yöneticisi panellerinin özelliklerini kullanın. Yandex Webmaster için: Bir site seçin -> Site indeksleme -> Hariç tutulan sayfalar. Google Web Yöneticisi için: Site seçin -> Optimizasyon -> HTML optimizasyonu; Ayrıca: Siteyi seçin -> Yapılandırma -> URL parametreleri.

    Yandex ve Google'da yönlendirmeleri indeksleme ve yeniden indeksleme özellikleri. Yinelenen ve sorunlu adreslerle uğraştığınızda elbette webmaster panellerinden hataların kaldırılmasını bekleyeceksiniz, burada bazı tuhaflıklar var. Google ile her şey basit - yönlendirmeleri ayarladık, değişiklikler 2 hafta içinde dizine eklenecek, aynı zamanda hatalar web yöneticisi panelinden kaybolmaya başlayacak, genellikle bir ay sonra tüm hatalar ortadan kalkar. Yandex'de bir incelik var ve aşağıdakilerden oluşuyor - yönlendirmeleri ayarladıktan sonra, hataların panelden sonsuza kadar kaybolmasını bekleyebilirsiniz, bir keresinde desteğe yazana kadar altı ay bekledim, burada bana ek olarak bunu söylediler yönlendirme, robots.txt dosyasındaki sorunlu sayfaları ek olarak kapatmak gerekir ve ancak o zaman web yöneticisinin panelinden kaybolurlar.

    .htaccess yoluyla Kalıcı Yönlendirme 301

    Bu yönlendirme ayarlama yöntemi en popüler ve basittir. Dürüst olmak gerekirse, her şey göründüğü kadar basit olmaktan uzak olsa da, bu yüzden htaccess hakkında ayrı bir yazı yazmayı planlıyorum. profesyonellerin Bu method yönlendirmenin sunucu düzeyinde ve herhangi bir site komut dosyasının işlenmesine başlamadan önce çalıştığı ve ek yük taşımadığı not edilebilir.

    Muhtemelen sunucunuzda zaten bir .htaccess dosyanız vardır (ana index.php'nin bulunduğu kökte). Bu dosya görünmüyorsa:

    • Ftp yöneticisi ayarlarını kontrol edin, htaccess dosyası olan sistem dosyalarını gizleyebilir
    • Barındırıcının kontrol panelinden dosya yöneticisine gidin ve dosya izinlerini kontrol edin. CHMOD'u kastetmiyorum, ancak bir grup ve kullanıcı, örneğin, olabilir kök kullanıcı, ve alan sahibinin kullanıcısının erişimini kullanarak ftp aracılığıyla bağlanırsınız.
    • Basmakalıp bir dosya olmayabilir :) O zaman oluşturulması gerekir ama bazen windows altında sorun çıkıyor çünkü. aslında .htaccess dosyası sistem tarafından isimsiz ve sadece uzantılı bir dosya olarak görülür. Basit bir yol öneriyorum - normal bir txt dosyası oluşturuyoruz, ona "RewriteEngine On" (tırnak işaretleri olmadan) satırını ekliyoruz, txt dosyasını sunucuya yüklüyoruz, dosyayı sunucuda .htaccess olarak yeniden adlandırıyoruz

    Yönlendirmeyle ilgili düzenlemelerin çoğu dosyanın en başında, "RewriteEngine On" satırından sonra yazılmalıdır. böylece önce bu kurallar işlenir. Eylem sırasını takip etmek önemlidir, çünkü. komutlar sunucu tarafından en başından ilk geçtiği yere kadar satır satır işlenir. Başka bir deyişle, kişi her zaman özel bir örneklemle başlamalı ve daha genel bir örneklemle bitirmelidir.

    En yaygın ve yararlı örneklerden bazılarına bakalım:

    Etki alanı için www.site.ru'dan site.ru'ya 301 yönlendirmesi

    RewriteCond %(HTTP_HOST) !^www\.(.*) RewriteRule ^(.*)$ http://www.%1/$1

    Yukarıdaki yönlendirme seçenekleri harika çalışıyor ve herhangi bir düzenleme yapmanızı gerektirmiyor - sadece yapıştırın. htaccess dosyası. Ancak, %100 güvenilirlik için size başka bir seçenek önerebilirim:

    RewriteCond %(HTTP_HOST) !^www.site.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1

    RewriteCond %(HTTP_HOST) !^www.site.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1

    RewriteCond %(HTTP_HOST) !^site.ru$ RewriteRule ^(.*)$ http://site.ru/$1

    RewriteCond %(HTTP_HOST) !^site.ru$ RewriteRule ^(.*)$ http://site.ru/$1

    İlki, ana etki alanı www ile olanlar için, ikincisi - www'si olmayanlar içindir. Buna göre her iki örnekte de “site” yerine alan adınızı giriniz.
    Peki, bu seçenekler neden daha iyi?Çok basit bir şekilde sadece alan adında www'nin yokluğunu / varlığını değil, aynı zamanda alan adının tam uyumluluğunu da kontrol ederler.
    Canlı örnek: Elbette, bir sitenin birdenbire barındırma üzerindeki bir hizmet adresi tarafından dizine eklenebileceği gerçeğiyle karşılaşmışsınızdır (böyle bir adres verilir, böylece siteye gerçek etki alanınız bağlanmadan önce erişilebilir), bazı aynalar veya hatta bir ip adres! Bu nedenle, evrensel kurallar yalnızca www'nin yokluğunu/varlığını doğrulayacaktır ve kullanıcının veya arama robotunun hangi etki alanına eriştiği önemli değildir.
    Böylece, gelişmiş seçeneği kullanarak sitenizin yalnızca ve münhasıran kişisel olarak belirttiğiniz alan adında ve www. Ben sadece bu seçeneği kullanıyorum ve size de tavsiye ediyorum!

    301 http'den https'ye yönlendirme

    Sitelerin güvenli bir protokole toplu geçişi ışığında, http'den https'ye nasıl yönlendirileceğini bilmeniz gerekir. Bu arada, hala bir SSL sertifikası seçmediyseniz, hakkındaki yazımı okumalısınız.

    Aşağıda, sunucunuzun yapılandırmasına bağlı olarak çalışabilen veya çalışmayabilen http'den https protokolüne 301 yönlendirmesi için birkaç seçenek sunuyorum, ancak kurallardan biri kesinlikle size uyacaktır:

    RewriteCond %(HTTPS) !=on RewriteRule ^(.*)$ https://%(HTTP_HOST)/$1

    RewriteCond %(HTTPS) !=on RewriteRule ^(.*)$ https://%(HTTP_HOST)/$1

    RewriteCond %(SERVER_PORT) !^443 $ RewriteRule ^(.*)$ https://%(SERVER_NAME)%(REQUEST_URI)

    RewriteCond %(SERVER_PORT) !^443$ RewriteRule ^(.*)$ https://%(SERVER_NAME)%(REQUEST_URI)

    RewriteCond %(ENV:HTTPS) !on RewriteRule ^(.*)$ https://%(HTTP_HOST)%(REQUEST_URI)

    RewriteCond %(ENV:HTTPS) !on RewriteRule ^(.*)$ https://%(HTTP_HOST)%(REQUEST_URI)

    RewriteCond %(HTTP:X-HTTPS) !1 RewriteRule ^(.*)$ https://%(HTTP_HOST)/$1

    RewriteCond %(HTTP:X-HTTPS) !1 RewriteRule ^(.*)$ https://%(HTTP_HOST)/$1

    RewriteCond %(HTTPS) kapalı RewriteCond %(HTTP:X-Forwarded-Proto) !https RewriteRule ^(.*)$ https://%(HTTP_HOST)%(REQUEST_URI)

    Şuradan yönlendir: https protokolü http'de (dürüst olmak gerekirse, buna neden ihtiyacınız olabileceğini bilmiyorum):

    RewriteCond %(HTTPS) =RewriteRule'da ^(.*)$ http://%(HTTP_HOST)/$1

    RewriteCond %(HTTPS) =RewriteRule'da ^(.*)$ http://%(HTTP_HOST)/$1

    Geçenlerde çok yazdım detaylı talimatlar. https'den https'e geçmeyi planlıyorsanız mutlaka okumalısınız!

    Anlaşılmaz abrakadabraya biraz açıklık getireceğim:

    • RewriteCond, eşleşirse RewriteRule'u yürütecek bir koşulu belirtir. Dize kalıplarını tanımlamak için düzenli ifadeler kullanılır.
    • Sunucu değişkenleri:
      • %(REQUEST_URI) - URL'nin alan adı ve GET parametreleri olmayan kısmı, örneğin şu anda okuduğunuz sayfa için: blog/post/4393 ,
      • %(HTTP_HOST) - ana bilgisayar veya etki alanı adı, örneğin: site
      • %(QUERY_STRING) — bir dizi GET parametresi içeren bir dize, yani URL'nin soru işaretinden sonraki kısmı (ve varsa bağlantı ızgarasından önceki kısmı).
      • %(REQUEST_FILENAME) - tam yol dosya sistemi sunucuyu bu request..php'ye karşılık gelen bir dosyaya veya komut dosyasına yönlendirir, ancak sunucu dosya sisteminde korkunç bir satırdır /var/www/site/data/www/site/index.php .
        Bazen yönlendirme yaparken beklenmedik bir sonuç alıyorsunuz, örneğin http://site.ru/page-name?post=17434801_4060 adresindeki post=17434801_4060 parametrelerini kaldırmak istediniz, uygun kuralları belirledik (biz aşağıda onlar hakkında yazacağım) ve sonunda http://site.ru/usr/local/www/site.ru/www/page-name dizesini aldı - parametrelerden kurtuldu, ancak garip bir adres aldı. Bunun nedeni, bir dizin bağlamında yeniden yazma işlemleri için belirli bir temel URL ayarlayan RewriteEngine On'dan sonra dosyanın başına RewriteBase / yönergesini eklememiş olmanızdır.
    • Metakarakterler, bir modeldeki karakter gruplarını veya "etiketleri" belirtmek için kullanılır:
      • ^ - satırın başlangıcının işareti,
      • $ - satır sonu işareti,
      • ! - inkar
      • \ - kaçan eğik çizgi, onu takip eden meta karakteri normal bir karakter olarak düşünmenizi sağlar,
      • . - nokta, herhangi bir karakteri belirtir, ancak yalnızca bir tane,
      • () - gruplama.
    • Değiştiriciler, sıradan karakterlerin, meta karakterlerin veya bunların gruplarının arkasına yerleştirilir ve kalıp kullanma olanaklarını genişletir:
      • ? - karakter 0 veya 1 kez tekrarlanır,
      • * - 0'dan 65536 defaya kadar tekrarlar,
      • + - 1 ila 65536 kez tekrar eder.
    • İşaretler, aşağıdakiler için ek seçenekler tanımlar: bu kural ve virgülle ayrılmış köşeli parantez içinde listelenmiştir:
      • NC - (nocase) vaka kontrolünü devre dışı bırakır.
      • R - (yönlendirme) dönüştürme işlemini durdurur ve sonucu istemci tarayıcısına yönlendirme olarak döndürür bu sayfa(302, GEÇİCİ TAŞINDI). Bu bayrak ile farklı bir sonuç kodu belirleyebilirsiniz, örneğin R=301, 301 (KALICI OLARAK TAŞIDI) kodlu bir yönlendirme döndürür. Tahmin edebileceğiniz gibi, tam olarak ihtiyacımız olan şey bu.
      • L - (son) dönüştürme işlemini durdurur ve mevcut bağlantı nihai olarak kabul edilir.

    En popüler durum, index.php'den (html) ana sayfaya 301 yönlendirmesidir. Sitelerin %90'ında, http://site.ru ve http://site.ru/index.php (veya index.html, index.htm veya başka herhangi bir seçenek) adresindeki ana sayfayı kopyalama sorunu vardır. önemli değil, hatta hepsi birden). Bir yerde, örneğin, logodaki bağlantı site.ru'ya gittiğinde ve menüdeki bağlantı site.ru/index.php'ye gittiğinde, açık olmayan bir yerde, girerken kopya bulunduğunda açıktır. index.php'deki adresi manuel olarak . Sadece sorunu çözmek önemlidir. Ve evrensel bir seçenek sunuyorum, işte burada:

    RewriteCond %(THE_REQUEST) ^(3 ,9 )\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php|html|htm)$ $1

    RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php|html|htm)$ $1

    Bu kodu değiştirmeden "RewriteEngine On" satırından sonraki satıra yapıştırın ve sorun değil!

    Sitedeki kopyalarla uğraşmaya başlayan birçok kişi, bu tür bağlantıların nereden geldiğini merak ediyor., ana sayfayı kopyalayan http://site.ru/page-name.html &post=-1234567_8901? &post=-1234567_8901 öneki nereden geldi - bu "iyi" VKontakte'den alınır, birisi sitenizin bağlantısını duvarında, bir grupta veya herkese açık olarak paylaştığında, görünüşe göre bazı istatistikleri izlemek için benzer bir satır otomatik olarak eklenir .

    Bu saçmalıktan kesin olarak kurtulmak için htaccess'e eklemeniz gerekir:

    RewriteCond %(REQUEST_URI) ^(.*)\&sa= RewriteRule ^(.*)\&sa=(.*)$ $1

    Gördüğünüz gibi önceki durumla bunun arasında bir fark yok, url'de &post= veya &sa= veya ne varsa olsun - çözüm aynı, sadece kodun görünen kısımlarını değiştirmeniz gerekiyor. , Sağ?

    Adresteki parametrelerden veya etiketlerden kurtulma

    Soru, yorumlarda ve forumda birçok kez soruldu, bu yüzden görmezden gelemezsiniz. Bu tür kopyalarla ne yapılmalı: http://site.ru/?abrakadabra veya daha gerçek bir durum http://site.ru?utm_source=twitterfeed&utm_medium=twitter

    Bu durum, php betiği için parametrelerden kurtulacağımız bir sonraki paragraftan biraz farklıdır, çünkü burada betiğe normal adresi ve parametreleri iletmiyoruz. İşte çözüm:

    RewriteCond %(QUERY_STRING) ^lang=ru$ RewriteRule ^(.*)\.php\?(.*)$ $1\.php

    %(QUERY_STRING), URL'nin soru işaretinden sonraki (ve varsa bağlantıdan önceki) kısmı olan PHP için bir dizi değişken içeren bir dizedir.

    URL'yi çağırıyoruz - http://site.ru/index.php?lang=ru

    RewriteCond %(QUERY_STRING) ^lang=ru $
    İstenen url bu kuralın kapsamına giriyor, başka kural yok, bu nedenle aşağıdaki satırdaki RewriteRule çalıştırılacaktır.
    RewriteRule ^(.*)\.php\?(.*)$$1\.php

    Kaynak URL'si: http://site.ru/index.php?lang=ru
    URL ayrıştırma modeli: ^(.*) \.php\?(.*) $
    URL, değişkenlere ayrıştırılır: $1 = http://site.ru/index , $2 = lang=ru ve http://site.ru/index .php ($1 \.php) olarak yeniden birleştirilir
    Ve sonra yeni bir url'ye 301 yönlendirmesi olacak.

    Site yapısını değiştirirken kurallara bir örnek

    RewriteRule ^post/category/(.*)$ blog/category/$1 RewriteRule ^post/(.*)$ blog/post/$1

    RewriteRule ^post/category/(.*)$ blog/category/$1 RewriteRule ^post/(.*)$ blog/post/$1

    Blogumun yapısını değiştirdiğimde htaccess dosyasına eklemem gereken satırlar bunlar.

    Daha önce, yapıdaki mantığı bir şekilde bozan http://site/post/4358 ve http://site/post/category/seo adreslerine sahiptim - sonuçta blog sitenin yalnızca bir parçası , ancak nedense gönderiler bloğa değil siteye aittir ve kategoriler gönderilere aittir ki bu da tamamen mantıksızdır.

    Aynı örnek, kuralların sırasını takip etmenin önemli olduğunu göstermektedir. Satırları değiştirirsem, yani RewriteRule ^post/(..info/blog/post/category/seo satırı ve http://site/blog/category/seo'da olması gerektiği gibi değil.

    Ve son örnek ayrıştırıyor yaygın hata sunucu kökünden adres ile

    Örneğin, http://site.ru/razdel/podrazdel/index.php ve http://site.ru/razdel/podrazdel/ adreslerinde bir kategori sayfası bulunduğunda böyle bir sorunu çözmeye karar verdiniz. İkinci url doğru ve ana ve sonunda index.php bulunan url, kaldırılması gereken eksiksiz bir kopyadır.

    index.php'den bir kategoriye yönlendirmek için bir kural yazarsınız:

    RewriteBase'de RewriteEngine /

    301 sayfadan sayfaya, yeni bir adrese yönlendirme

    En basit durum, bir sayfayı başka bir adrese yönlendirmeniz gerektiği zamandır. Birkaç sayfa için yönlendirme yapmanız gerekiyorsa, birkaç kural yazmanız gerekecektir, ancak bu durumda yukarıda açıklanan şablonları kullanmak daha iyidir. Birkaç tamamen aynı sözdizimi seçeneği vardır:

    Yönlendirme 301 /page-name1.html http://site.ru/page-name2.html Kalıcı yönlendirme /page-name1.html http://site.ru/page-name2.html RedirectPermanent /page-name1.html http ://site.ru/sayfa-adı2.html

    Yönlendirme 301 /page-name1.html http://site.ru/page-name2.html Kalıcı yönlendirme /page-name1.html http://site.ru/page-name2.html RedirectPermanent /page-name1.html http ://site.ru/sayfa-adı2.html

    Üçünden birini seçin ve şahsen ben ilk seçeneği tercih ederim - daha kısa, daha basit ve daha anlaşılır. Bu arada, burada site.ru aynı alan adı olmayabilir, ancak başka herhangi bir alan olabilir.

    .htaccess için bu kadar ve PHP'ye geçelim.

    PHP ile Kalıcı Yönlendirme 301

    .htaccess ile ilgili zorluklar olduğunda veya php'deki işlevin daha mantıklı ve anlaşılır olduğu ortaya çıktığında genellikle bir PHP yönlendirmesi kullanırım.

    PHP'ye 301 yönlendirmesinin sözdizimi aşağıdaki gibidir:

    başlık(); başlık("Konum: http://site.ru"); die("Yönlendir");

    header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); başlık("Konum: http://site.ru"); die("Yönlendir");

    Bu satırlar, istemci tarayıcısına istenen bazı sayfalardan http://site.ru adresine kalıcı bir yönlendirme yapılması gerektiğini söyler. Aynı zamanda, http://site.ru sadece mevcut sitenin ana sayfasının adresi değil, başka herhangi bir site olabilir. Bir şeyler ters giderse ve bir hata oluşursa, tarayıcı penceresinde "Yönlendirme" yazısını göreceğiz.

    Daha açık hale getirmek için, blog sitem için yazdığım, belirli sorunları çözmeye çalışan bazı işlev örnekleri.

    URL'den belirli bir parçayı kaldırmanıza izin veren bir işlev

    if (strpos($_SERVER["REQUEST_URI" ], "http://site" ) !== false) ( $real_page_url = "http://site" .str_replace ("/http://site" , "" , $_SERVER["REQUEST_URI" ]); "HTTP/1.1 301 Kalıcı Olarak Taşındı"); başlık("Konum: $real_page_url"); die("Yönlendir"); )

    if (strpos($_SERVER["REQUEST_URI"], "http://site") !== false) ( $real_page_url = "http://site"..1 301 Kalıcı Olarak Taşındı"); header("Location: $real_page_url"); die("Yönlendir"); )

    Bir keresinde webmaster panelde bir sürü 404 hatası çıktı sorunu yaşadım bu sayfaların adresleri http://alaev..e şeklindeydi. adresin bir yerinden yinelenen bir site adresi çıktı. Ve sonra URI'nin (URL değil, URI'ye dikkat edin) "http: // site" girişini içerip içermediğini kontrol eden bir işlev yazdım ve öyleyse, bu parçayı adresten kesip yazarız. sonucu $ real_page_url değişkenine veriyoruz ve ardından değişkenden doğru adrese 301 yönlendirmesi yapıyoruz.

    URL'den sondaki eğik çizgiyi kaldırma işlevi

    if (($_SERVER["REQUEST_URI" ], - 1 , 1 ) == "/" ) ( $requested_url = rtrim($requested_url, "/" ); başlık ( "HTTP/1.0 301 Kalıcı Olarak Taşındı"); header("Konum: $requested_url"); die("Yönlendir"); )

    if (($_SERVER["REQUEST_URI"], - 1, 1) == "/") ( $requested_url = rtrim($requested_url, "/"); header("HTTP/1.0 301 Kalıcı Olarak Taşındı"); header( "Konum: $requested_url"); die("Yönlendir"); )

    İşte böyle en basit fonksiyon, istenen sayfa adresinin sonunda eğik çizgi olup olmadığını kontrol eder ve eğer varsa, eğik çizgi kesilir ve eğik çizgi olmayan adrese bir 301 yönlendirmesi gerçekleşir.

    Yönlendirme komutu vermenize izin veren daha birçok seçenek vardır. farklı diller ASP, Ruby on Rail, vb. gibi programlama, ancak bu dillere aşina değilim, bu yüzden burada zekice davranmayacağım ve beyinlerinizi pudralamayacağım. Yönlendirmeler, javascript'e yönlendirmelerin yanı sıra meta yenileme meta etiketi kullanılarak da mümkündür- ama bu dürüst olmayan kapı çalışanlarının kaderidir ve arama motorları bu yönlendirmeleri anlamaz, sunucudan 200 OK yanıtı alırlar. Bu yüzden bu seçenekleri düşünmüyoruz.

    Nginx sunucusu için Kalıcı Yönlendirme 301

    Sitemin ip ile erişilebilen aynası hakkında yazdığımı hatırlıyor musunuz? Sonuç olarak sorun, sunucu yapılandırma dosyasında yazılan bir yönlendirme ile çözüldü, genellikle /etc/nginx/nginx.conf konumunda bulunur. Orada şu satırlar yazılmıştı:

    sunucu ( dinle 1.2.34.123:80 varsayılan; sunucu_adı _; yeniden yaz ^/(.*)$ http://site.ru/$1 kalıcı; )

    sunucu ( dinle 1.2.34.123:80 varsayılan; sunucu_adı _; yeniden yaz ^/(.*)$ http://site.ru/$1 kalıcı; )

    Burada, bir ip adresine 80. bağlantı noktasından erişilirse, site.ru'ya kalıcı bir yönlendirme yapılması gerektiği yazıyor.

    Ancak teknik destek şu sözlerle bunu yapmamı önermedi: “HTTP sunucusunu, açıkça belirtilmeyen bir adresten erişilirse bağlantıyı basitçe kapatacak şekilde yapılandırmak daha doğru olur. HTTP sunucusu yapılandırması, bu en güvenilir, basit, en güvenli ve en az talepkar sunucu seçeneğidir. Bir süre sonra, kullanılamayan sayfaların arama motoru dizininden atılması muhtemeldir.”

    Bir sonraki tavsiye şuydu: "Yönlendirmek yerine bağlantıyı kapatmanız gerektiğinde, "^/(.*)$ http://site.ru/$1 kalıcı olarak yeniden yazın;" böyle bir satır "dönüş 444;". Ardından şunu çalıştırın: "invoke-rc.d nginx yeniden yükle"".

    Belki bu birine yardımcı olur.

    En yaygın durumlarda yönlendirme örnekleri

    www.site.ru etki alanı için site.ru'ya yönlendirme

    sunucu ( 80 dinle; sunucu_adı site.ru; yeniden yaz ^ http://www.site.ru$request_uri? kalıcı; )

    http://site.ru/index.php'den http://site.ru/'a yönlendirme

    konum = /index.php ( if ($request_uri = /index.php) ( yeniden yaz ^ http://$host? kalıcı;#301 yönlendirme ) fastcgi_pass unix:/tmp/fastcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; dahil fastcgi_params; )

    konum = /index.php ( if ($request_uri = /index.php) ( yeniden yaz ^ http://$host? kalıcı;#301 yönlendirme ) fastcgi_pass unix:/tmp/fastcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; dahil fastcgi_params; )

    Bunun gibi bir şey. Nginx için yapılandırma ayarlarında güçlü değilim, Apache ayarlarıyla her zaman idare ederim, bu nedenle nginx hakkında herhangi bir sorunuz varsa, o zaman size pek yardımcı olamam...

    HTTP başlıkları ve sunucu yanıt durumları nasıl kontrol edilir

    Bu bölümde, sunucu yanıtını kontrol etmek için çeşitli hizmetler ve eklentiler açıklamak istedim, ancak bu gönderinin hacminin zaten o kadar büyük olduğunu anlıyorum ki, kendimi yalnızca Chrome ve Firefox tarayıcıları için uzantılara bağlantılarla sınırlamak zorunda kalacağım.

    Firefox için HttpFox Eklentisi

    HttpFox (eklentiye bağlantı), en sevdiğim http başlık izleme aracıdır. HttpFox, örneğin yönlendirme zincirlerini ve genel olarak sayfa yükleme sırasını ve hızını izlemenize olanak tanıyan sayfa yükleme ilerlemesini satır satır gösterir. Mozilla kullanıyorsanız kesinlikle tavsiye ederim.

    Chrome için HTTP Başlıkları uzantısı

    Ben kendim HTTP Başlıkları uzantısını kullanmıyorum (işte bir bağlantı), ancak İnternet buna dikkat etmemi tavsiye etti. Daha iyi seçenekleriniz varsa, lütfen yorumlara yazın.

    Çok uzun ve yorucu yazımı burada bitiriyorum arkadaşlar.
    Sonuna kadar okuduğunuz için teşekkür ederim, umarım gerçekten faydalı bulmuşsunuzdur.


    Sitenizde düzgün bir şekilde 301 yönlendirmesi kurmak istiyorsanız, SeoProfy tüm detayları ve nüansları anlatan ve gösteren adım adım bir kılavuz hazırlamıştır.

    301 yönlendirme kılavuzunun iki bölümü vardır:
    - Kod örnekleri ve kılavuzun kendisini içeren bir makale (hemen bir kod örneğine ihtiyacınız varsa, infografikte hemen gezinmek daha iyidir)
    - Görsel detaylı infografikler

    301 yönlendirmeleri, arama motoru tanıtımı için önemlidir ve bu kılavuzda, farklı durumlar için bir yönlendirmenin nasıl doğru şekilde uygulanacağına ilişkin en temel soruların yanıtlarını bulacaksınız.

    Yönlendirme nedir?

    Yönlendirme, kullanıcıları ve arama motorlarını başlangıçta talep ettiklerinden farklı bir URL'ye yönlendirmenin bir yoludur. Aşağıda, daha yaygın olarak kullanılan yeniden yönlendirme türlerinden bazılarının açıklamaları bulunmaktadır.

    301 Kalıcı Olarak Taşındı

    301 yönlendirmesi, bağlantı suyunuzun yaklaşık %90-99'unu aktaran kalıcı bir yönlendirmedir. Bu yönlendirme, sayfanın yeni bir adrese taşındığını ve eski url'nin geçersiz sayılması gerektiğini gösterir.

    302 Bulundu (HTTP 1.1) / Geçici Olarak Taşındı (HTTP 1.0)

    302 yönlendirmesi geçici bir yönlendirmedir. Bu yönlendirme, bağlantı suyunun %0'ını geçer ve çoğu durumda kullanılmamalıdır. Açık şu anİnternet, URL'lerin nasıl işleneceğini belirleyen HTTP protokolünü kullanır. Bu protokolün iki versiyonunda, bu sunucu yanıtının farklı bir yanıt durumu vardır:

    HTTP 1.0: 302 sunucu yanıtı "Geçici Olarak Taşındı" - geçerli belge geçici olarak farklı bir URL'ye taşındı.

    HTTP 1.1: Sunucu yanıtı "Bulundu" olarak değişti - geçerli belge bulundu.

    307 Geçici Olarak Taşındı (Yalnızca HTTP 1.1)

    HTTP 1.1 protokolündeki 307 yönlendirmesi, 302 yönlendirmesinin alıcısı oldu. Ana arama botları ona 302 gibi davranmaya başlayacak olsa da, hemen hemen tüm durumlarda 301 kullanmak en iyisidir. Bu kuralın istisnası, içeriğin gerçekten yalnızca geçici olarak taşındığı (örn. bakım sırasında) ve arama motorlarının bunu zaten anladığı durumlardır. sunucunuz HTTP 1.1 uyumludur. Ancak, arama motorlarının sunucunuzun bu yeni protokolle uyumlu olduğunu gerçekten anlayıp anlamadığını söylemek neredeyse imkansız olduğundan, geçici olarak taşınan içerik için 302 yönlendirmesi kullanmak en iyisidir.

    Diğer yönlendirme türleri

    Sunucu düzeyinde değil, sayfa düzeyinde yapılan başka yönlendirme türleri de vardır - Meta Yenileme veya javascript -. Tipik bir Meta Yenileme yönlendirmesi şöyle görünür:

    Ancak, spam gönderenler ve kapıcılar onları kötüye kullanmaya çok düşkün olduklarından, bu yönlendirmeleri son derece nadiren kullanmanız önerilir. Ayrıca, bu yönlendirmeleri kullanırken bağlantı suyu neredeyse aktarılmaz.

    kullanım örnekleri

    Web sitesi etki alanı kanonikleştirme veya bir etki alanı nasıl birbirine yapıştırılır?

    Bir etki alanını www'den www olmayana birleştirmek için:
    RewriteCond %(HTTP_HOST) ^www.site\.com$
    RewriteRule ^(.*)$ http://site.com/$1

    www olmadan www ile yapıştırmak için:
    RewriteCond %(HTTP_HOST) ^site\.com$

    Hangi seçeneklerin yapıştırılacağını doğru bir şekilde seçmek için şunlara bakmanız önerilir:

    Bu seçeneklerden hangisi daha üstte
    - hangi seçenek için daha fazla sayfa dizinde

    URL'nin sonundaki eğik çizginin kanonikleştirilmesi

    Bir site tasarlarken, url'nin sonunda bir eğik çizgi kullanarak bir biçime karar vermek önemlidir, çünkü arama motorları için formun 2 url'si vardır:

    http://www.site.com/cat1/

    http://www.site.com/cat1

    farklıdır. Bu nedenle, siteye tam olarak nasıl sahip olacağınıza karar verdikten sonra, aşağıdaki yönlendirmeleri kaydetmeniz gerekir.

    Sondaki eğik çizgiyi kaldırmak için:
    RewriteCond %(HTTP_HOST) (.*)
    RewriteCond %(REQUEST_URI) /$
    RewriteRule ^(.*)(/)$ $1

    Sona eğik çizgi eklemek için adres çubuğu:
    RewriteCond %(REQUEST_FILENAME) !-f
    RewriteCond %(REQUEST_URI) !(.*)/$
    RewriteRule ^(.*[^/])$ $1/

    Bir sayfayı başka bir sayfaya yönlendirmek:
    Yönlendirme 301 /oldpage.html http://www.site.com/newpage.html

    Ana sayfa kopyaları için yönlendirme

    Bu kod, default.htm veya index.html gibi sayfa adı doğrudan bağlantılarının birden çok sürümünü içeren herhangi bir ana sayfa adresinin standart ana sayfa olan http://www.site.com'a yönlendirilmesini sağlar:
    RewriteCond %(THE_REQUEST) ^(3,9)\ /([^/]+/)*(default|index|main)\.(html|php|htm)\ HTTP/
    RewriteRule ^(([^/]+/)*)(default|main|index)\.(html|php|htm)$ http://www.site.com/$1

    Dizin yönlendirmesi

    Dizin yapınız url'de gösteriliyorsa, yeniden kataloglarsanız url'niz buna göre değişir. Bu durumda, aşağıdaki yönlendirmeyi kaydetmeniz gerekir:
    RewriteRule ^(.*)/eski-katalog/(.*)$ $1/yeni-katalog/$2

    Ancak, eski kataloğun url'si etki alanından hemen sonra başlıyorsa: www.site.com/old-catalog/, o zaman aşağıdaki kodu kullanmanız gerekir.
    RewriteRule eski katalog /(.*) / eski katalog /$1

    Dosya uzantısını değiştirirken yönlendir

    Aniden başka bir platforma veya CMS'ye geçtiyseniz ve aynı zamanda yalnızca URL'lerin uzantısı değiştiyse, bu durumda aşağıdaki yönlendirme size yardımcı olacaktır:
    RedirectMatch 301 (.*)\.php$ http://www.site.com$1.html

    Bir siteyi birden çok sayfanın yinelenmesinden korumak için kullanım örnekleri

    Farklı alanlardan ve alt alanlardan yönlendirme

    Farklı alanlarda birden çok alan adı satın aldıysanız etki alanı bölgeleri veya yeni bir site geliştirip onu bir alt alana astıysanız ve bu alt etki alanını indekslemeden kapatmayı unuttuysanız, ana etki alanına yönlendirmeniz gerekir:
    RewriteRule ^(.*)$ http://www.site.com/$1

    Böylece www.site.ru, www.site.net, test.site.com gibi tüm domainler www.site.com'a yönlendirilecektir.

    Bir url'deki birden çok eğik çizgi/çizgi nasıl kaldırılır

    Bazen şans eseri URL'de birkaç eğik çizgi görünebilir, örneğin www.site.com/catalog////page-1.html. Bunlarda tek slasherlı bir sayfaya 301 yönlendirmesi yapmanız gerekmektedir www.site.com/catalog/page-1.html :
    RewriteCond %(REQUEST_URI) ^(.*)//(.*)$
    Kuralı Yeniden Yaz. %1/%2

    Benzer şekilde, birkaç tireyi URL'de tek bir tireye yapıştırabilirsiniz: www.site.com/catalog/page-1.html'den www.site.com/catalog/page-1.html'ye:
    RewriteCond %(REQUEST_URI) ^(.*)--(.*)$
    Kuralı Yeniden Yaz. %1-%2

    Herhangi bir url'den bir url'ye yalnızca küçük harfle nasıl yönlendirilir

    Arama motorları harflerin durumunu dikkate aldığından, bir site tasarlanırken tüm URL'lerin küçük harf olması istenir. Ancak, başlangıçta bu anı kaçırdıysanız, php betiği düzeyinde yönlendirme yapmak için aşağıdaki kodu kullanmak en iyisidir:
    $lowerURI=strtolower($_SERVER["REQUEST_URI"]);
    if($_SERVER["REQUEST_URI"]!=$altURI)
    {
    header("HTTP/1.1 301 Kalıcı Olarak Taşındı");
    header("Konum: http://" . $_SERVER["HTTP_HOST"] . $lowerURI);
    çıkış();
    }

    Yeni bir etki alanına nasıl taşınır? Optimal 301 yönlendirme stratejisi

    2 ana arama motoru Yandex ve Google'ın isteklerini dikkate alarak yeni bir etki alanına geçmek için en uygun strateji şudur:

    Sayfa 301 eski siteden yeni siteye yönlendirme.
    - aynı zamanda robots.txt dosyası için bir yönlendirme yapmıyoruz, bunun yerine Host yönergesini yeni etki alanına yazıyoruz.

    Ardından, eski sitede bir yönlendirme ayarlama kodu şöyle görünebilir:
    RewriteCond %(REQUEST_FILENAME) robots.txt$
    RewriteRule ^([^/]+) $1 [L]
    RewriteCond %(HTTP_HOST) !^www\.site\.com
    RewriteRule ^(.*)$ http://www.site.com/$1
    ve eski site için robots.txt dosyası:
    Kullanıcı aracısı: Yandex
    İzin verme:
    Sunucu: newsite.com

    301 yönlendirmelerinin oluşturulması

    Teknik olarak çok bilgili değilseniz, hizmetleri temel yönlendirmeler oluşturmak için kullanabilirsiniz:

    Bu tür hizmetlerde, yalnızca kendi verilerinizi değiştirebilir ve alanlar, dizinler veya URL'ler arasındaki yönlendirmeler için hazır bir kodu hemen alabilirsiniz.

    301 yönlendirmesi nasıl kontrol edilir

    301 yönlendirme mantığındaki her değişiklikten sonra sitenin performansını kontrol etmek gerekir:

    Site hiç çalışıyor mu: ana sayfaya gidin)

    Sitenin ana bölümlerinde ve sayfalarında gezinin

    Ayrıca, yeniden yönlendirme işleminin daha kapsamlı kontrolü için aşağıdaki hizmetleri kullanabilirsiniz:

    301 yönlendirmesi ve Canonical karşılaştırması nasıl ve ne zaman kullanılır?

    Bazı nüanslar olsa da Google, tam olarak ne söylemek istediğimizi anlaması için bazı net kurallar sunuyor. Çok basit bir durumda, arama motorları bu talimatları şu şekilde anlar:

    301 - Hey Arama Motorları: sayfam artık burada değil ve kalıcı olarak şuraya taşındı: yeni sayfa. Lütfen eski sayfayı dizinden çıkarın ve ağırlığını yeni sayfaya aktarın.

    kanonik- Hey Arama Motorları (çoğu arama motoru için): Bu sayfanın (veya içeriğin) birden çok sürümüne sahibim, lütfen sayfanın yalnızca üzerinde standart olan sürümünü dizine ekleyin. Diğer sayfaları insanların görmesi için açık tutacağım, ancak Arama Motoru, onları indeksinize eklemeyin ve lütfen tercih ettiğim sayfaya ağırlık verin.

    301 yönlendirmelerini kullanmak için en iyi zaman ne zaman?

    Varsayılan tercih edilen yöntemdir

    Sayfalar için: sayfa kalıcı olarak taşındıysa veya yeni bir adresle değiştirildiyse

    Alan adları için: site yeni bir alan adına taşınmışsa (site satışı, marka değişikliği vb.)

    404 sayfa ve alaka düzeyini kaybetmiş içerik için (ilgili içeriğe tabidir). Örneğin, bir ürün belirli bir katalogdan kaldırılırsa, benzer bir ürüne veya bu ürünün ait olduğu url kategorisine yönlendirebilirsiniz.

    rel="canonical" kullanmak ne zaman daha iyidir?

    301 yönlendirmeleri uygulanamadığında veya uygulanması çok uzun sürdüğünde

    Temelde aynı sayfada birden çok farklı URL'ye sahip sayfalar (ör. dizin sıralama, bağlı bağlantı izleme, ...)

    Alanlar arası, her iki site de benzer olduğunda, ancak benzer içeriğin etki alanlarının her birinde bırakılması gerekir.

    Toplam

    Yönlendirmeleri kullanırken hatalar

    Herhangi bir çok adımlı yönlendirme. Mümkünse, daha hızlı çalışması ve maksimum bağlantı ağırlığını aktarması için çok adımlı yönlendirmelere izin verilmemesi önerilir.

    kullanma doğru tip yönlendirmeler. Yönlendirme türünü seçerken, her birinin nüanslarını dikkate almak gerekir.

    Bağlantıları yeni adreslere değiştirmeden dahili yönlendirmelerin uygulanması. Sitenizdeki tüm yönlendirmeleri uyguladıktan sonra, sitenizdeki her sayfanın zaten yeni bir sayfaya bağlantı verdiğini ve site içinde yönlendirmenin gerçekleştiği sayfalara bağlantı bulunmadığını kontrol etmeniz gerekir.

    Alakasız sayfalara/içeriğe yönlendirin. Her zaman en alakalı sayfaya, benzer bir sayfaya veya bu sayfanın ait olduğu dizinin/bölümün bir dalına yönlendirme yapılması tavsiye edilir.

    Olumsuz doğru seçim rel=canonical ve 301 yönlendirmesini kullanarak. Yukarıyı görmek.

    Uç noktası 200. sayfa olmayan bir yönlendirme. Yönlendirme, 200 sunucu yanıtıyla düzgün çalışan bir sayfaya yönlendirmelidir. Aksi takdirde arama robotlarını devirip 404 yanıtı vermemeniz önerilir.

    Robots.txt yönlendirmesi. Örneğin, alan adlarını birleştirirken Yandex için Host yönergesini yazmanız gerektiğinden.

    Gelin infografiğe bir göz atalım:

    Bilgi grafiğini indirin.