Tüm sayfaların bir bölüme 301 yönlendirmesi. www içermeyen bir alan adından ters yönlendirme. www ile etki alanına. URL'de büyük karakterlerden küçük karakterlere yönlendirme

  • 28.07.2019

Yaklaşık 301 yönlendirmesi muhtemelen daha önce defalarca söylendi ve bloglarda, forumlarda vb. Ancak, ortaya çıktığı gibi, herkes bu bilgiyi zamanında almıyor (burada kendimi ima ediyorum :). Web'de 3 yıldan fazla bir süredir, birçok kez 301 yönlendirmesi duydum, bazen "deneyecektim" bile, ama kabul edelim ki hiç yapmadım. Ama boşuna! Her şey oldukça sıradan başladı - arama motorları tarafından indeksleme açısından sürekli olarak "sosis" olan bir sitem var. Görünüşe göre orada bağlantılar var ve içerik normal ama yine de hiçbir şekilde stabil çalışmak istemiyor. Bu tür davranışlar için neredeyse seçeneklerim tükendi, ancak daha sonra SEO ve genel olarak tanıtımın temellerini hatırladım - 301 yönlendirmeleri.

Twitter'da yapılan hızlı bir anket, gerçekte bu önemli anda "gol atan" neredeyse tek kişinin ben olduğumu gösterdi. Çoğunluk, oybirliğiyle, web sitesi oluşturulduktan hemen sonra 301 yönlendirmelerinin kurulmasının zorunlu olduğunu yanıtladı. Ayrıca, istek organizatörden ve ofisten geldiğinden, son zamanlarda burada site geliştirme tarafından onlar için aynı 301 yönlendirmesini eklemem istendi. Tüm bu anlar ve "kaderin ipuçları" göz önüne alındığında, 301 yönlendirmelerinin olacağını anladım!

Neden bir 301 yönlendirmesine ihtiyacınız var?? - soruyorsunuz - uygulanabileceği birkaç durum var:

  1. Bir etki alanını www ile ve www olmadan yapıştırmak için. Bu durumda, göstergeler ve bağlantı ağırlığı birleştirilir, aksi takdirde bazen www olan ve olmayan bir alan için farklı olabilir.
  2. Etki alanını eskiden yeni 301'e değiştirirken, yönlendirme göstergeleri ve referansı tekrar kaydedecektir (TCI hakkında bilgim yok, ancak PR kesin).
  3. Sitede bir sayfayı taşırken, arama motorlarının ve ziyaretçilerin çalışmayan eski sayfa yerine yeni bir sayfaya gitmesi için.
  4. Herhangi bir nedenle sizin tarafınızdan kullanılmayan bağlantılara sahip PR alanları varsa, belki de sadece zaman yoktur, o zaman teorik olarak diğer sitelerinize 301 yönlendirmeleri kullanabilirsiniz. Bu yöntem böyle olmasına rağmen - ek bir fırsat ya da başka bir şey, ana olanlar ilk üçü.

Genel olarak, hem kullanıcılar hem de arama robotları için bir 301 yönlendirmesi gereklidir - bunları ve diğerlerini yeni bir site, etki alanı, sayfa olduğuna yönlendirmenize ve herhangi bir soru sormadan oraya yönlendirmenize olanak tanır. Ayrıca 301 yönlendirmeleri site göstergelerini birleştirecek ve arama motorlarında konum kaybetmemenizi sağlayacaktır.

301 yönlendirmesi nasıl yapılır

Bu sorun için birçok çözüm var, bunların hepsi barındırma hizmetinin hangi teknik araçlara sahip olduğuna bağlı. Ayrıca internette 301 yönlendirmeleri hakkında okuyabileceğiniz birçok makale var, bence en tipik durumlardan sadece birkaçını vereceğim.

Basit yönlendirme

Apache için .htaccess veya httpd.conf dosyasında üretilir. Yeni bir etki alanına yönlendirmek için basit bir 301 yönlendirmesinin en basit versiyonu aşağıdaki gibidir:

Yönlendirme 301 /site1/page1.htm http://www.site2.com/page2.htm

İşte basit bir 301 yönlendirmesine birkaç örnek daha:

Kalıcı yönlendirme / test http://www.test.com/ Kalıcı yönlendirme / http://enter.test.com/

Burada bir kullanıcı veya robot test dizinine girdiğinde www.test.com'a yönlendirilecek, diğerleri enter.test.com'a gidecek. Bu 301 yönlendirmesi için mod_alias modüllerinin barındırmada etkinleştirilmesi gerekir (Redirect, RedirectPermanent ve RedirectMatch'i desteklemek için).

.htaccess içinde mod_rewrite ile 301 yönlendirmesi

mod_rewrite modülüne çok sık rastlamışsınızdır, farkında bile olmadan. Özellikle kalıcı bağlantılardan wordpress seo optimizasyonunda kullanışlı bir araç olarak bahsediyoruz. Aynı bağlantıları yönetici panelinde yapılandırır ve ardından .htaccess dosyasına giderseniz, orada RewriteRule yönergesi aracılığıyla yeniden yönlendirme için bir dizi kural bulacaksınız. Ayrıca FollowSymLinks seçeneğinin etkin olup olmadığını kontrol etmeniz gerekir.

www'den www olmayanlara alan yönlendirmesi

Seçenekler + FollowSymLinks RewriteEngine On RewriteCond% (HTTP_HOST) ^ www.domain \ .com $ RewriteRule ^ (. *) $ Http://domain.com/$1

İstekleri www öneki ile etki alanına www olmadan yönlendirme

Seçenekler + FollowSymLinks RewriteEngine On RewriteCond% (HTTP_HOST)! ^ Www \. (. *) RewriteRule ^ (. *) $ Http: //www.%1/$1

Genel olarak, sitenin adında www kullanımı eskidir, ancak bazen hala ortaya çıkmaktadır. Yeni bir site oluşturuyorsanız, elbette hemen her yeri www olmadan belirtirsiniz, ancak "bitmiş bir ürün" aldıysanız, etki alanının Google ve Yandex'in arama sonuçlarında nasıl görüntülendiğine bakmanız gerekir - böyle bir hiçbir şeyi kökten değiştirmemek için yönlendirin ve bırakın.

Eski etki alanının yenisine 301 yönlendirmesi:

RewriteBase / RewriteRule üzerinde RewriteEngine ^ rewrite \ .htm $ rewrite.html

Tüm .htm dosyalarını .html dosyalarıyla değiştirmek için:

HTTP / 1.1 301 Kalıcı Olarak Taşındı Konum: http://www.newdomain.ru/newdir/newpage.htm

Bunun için örneğin PHP'de şunları kullanırız:

"HTTP / 1.1 301 Kalıcı Olarak Taşındı"); başlık ( "Yer: http://www.newdomain.ru/newdir/newpage.htm"); çıkış (); ?>

Bu kodu PHP betiğinin başına eklemek en iyisidir, böylece ondan önce hiçbir şey görüntülenmez (yankı veya yazdır). Açıklama için, ASP, ColdFusion vb.'ye yönlendirme yükleme hakkında da bilgi bulabileceğiniz bu makalenin yazarı sayesinde, sadece php ile en popüler seçenektir.

301 yönlendirmeleri hakkında notlar

Son olarak, hatırlanması gereken ve şu ya da bu şekilde karşılaştığım 301 yönlendirmeleri hakkında birkaç nokta:

  • İlk olarak, yönlendirme kurallarının sırası dikkate alınır. Bu nedenle, bazı kurallar başarısız olursa, başka yönlendirme olup olmadığını ve müdahale edip etmediğini kontrol edin.
  • İkinci olarak, bir 301 yönlendirmesinin söz dizimini ve tüm özelliklerini hatırlamak oldukça zordur, bu nedenle bazen mantık ve bazı seçenekler arasında sıralama yapmak çok yardımcı olur :) Gerçi, elbette, resmi belgeleri okumak daha iyidir.
  • Üçüncüsü, bir 301 yönlendirmesinin uygulanmasından sonra, çalışabilirlik kurallarını kontrol ettiğinizden emin olun, sadece ana sayfaya değil, aynı zamanda sitenin bölümlerini, sayfalarını da gözden geçirin, böylece daha sonra bununla ilgili bir sorun olmayacak.

301 yönlendirmesine ekleyeceğiniz bir şey varsa - yazın :)

not Nöbetçi. Günümüzde, her gün birçok ilginç İnternet projesi var. Startup'lar hakkında her şeyi bilmek istiyorsanız, yeni ve heyecan verici StartupWay blogunu okuyun.
Web projesinin denetimi ve optimizasyonundan sonra, Google ve Yandex arama motorlarındaki sitelerin kapsamlı bir tanıtımı izler.

Genellikle web geliştirmede, bir sayfadan (örneğin, güncel olmayan) diğerine yönlendirmeler yapmanız gerekir. Aynı zamanda, yeniden yönlendirme, hem sayfa ağırlığı kaybıyla hem de sayfa ağırlığı kaybı olmadan farklı yöntemlerle gerçekleştirilebilir. Ama bu konuda daha fazlası.

Bildiğiniz gibi herhangi bir sayfa zamanla indekslenir ve ağ üzerinde kendi ağırlığı vardır. Sayfa alakasız hale gelirse elbette silinebilir ancak sayfaya tıklayan kullanıcılar sitenin var olmayan bir bölümüne gidecek ve sonunda oradan ayrılacaktır. Bu tür sayfalara sitenin ilgili bölümlerine 301 yönlendirmesi yapmak daha doğrudur. Öncelikle kullanıcı hatayı görmeyecek ve eski sayfanın ağırlığı tamamen yenisine aktarılacaktır.

Sayfa yönlendirme farklı şekillerde yapılabilir. Ana olanları düşünelim.

.htaccess üzerinden 301 yönlendirmesi

Sitenizin kökünde .htaccess adında bir dosya (yoksa oluşturun) vardır. Düzenlemek için açın ve aşağıdaki yöntemlerden birini kullanın.

Kalıcı yönlendirme ve 301 yönlendirme - Bir sayfadan diğerine (veya siteye) kolayca 301 yönlendirmesi yapar. Birincisi eski site bağlantısıdır (not - bir alan adı olmadan), ikincisi yeni bir sayfaya (aynı site veya hatta yeni bir site olabilir) bir bağlantıdır.

Örnekler:
Kalıcı yönlendirme /staraya-stranica.php http://newsait.ru/novaya-stranica.php
(burada eski sayfadan yenisine yönlendiriyoruz)

Yönlendirme 301 / http://newsait.ru/
(burada /, sitenin ana sayfasından ve tüm alt sayfalarından (alt dizinlerden) başlayan her şeyin yeni bir etki alanına yönlendirileceği, yani aslında bu etki alanından diğerine yönlendirileceği anlamına gelir.)

Yeniden Yazma Kuralı yönlendirmesi - önceki seçeneklerden daha karmaşık bir yönlendirme. Mod_rewrite modülünün doğru çalışması için barındırmaya bağlanmasını gerektirir (genellikle her zaman etkindir). Bu yöntem genellikle sayfaları www'den www olmayanlara veya tam tersi şekilde yönlendirmek için kullanılır. Onları düşünün:

www'den www olmayana alan yönlendirmesi
Seçenekler + FollowSymLinks
Yeniden YazmaMotoru Açık
RewriteCond% (HTTP_HOST) ^ www \. (. *)
RewriteRule ^ (. *) $ Http: //% 1 / $ 1

www olmayan alandan www alan adına yönlendirme
Yeniden YazmaMotoru Açık
RewriteCond% (HTTP_HOST)! ^ Www \. (. *)
RewriteRule ^ (. *) $ Http: //www.%1/$1

301, etki alanından etki alanına yönlendirme ve /market/vm2_market.xml bağlantısı için bir istisna. Onlar. eski alan adından yenisine yapılan tüm istekler (/market/vm2_market.xml hariç) yürütülecektir.

Yeniden YazmaMotoru açık

301 Eski alan adından yenisine yapılan tüm istekler (/market/vm2_market.xml ve / metin bağlantıları (ve tüm "alt bağlantıları") hariç) yürütülecektir. Ayrıca, belirli bir alt bağlantıyı yeniden yönlendirme kuralı (RedirectMatch 301) burada çalışır

Yeniden YazmaMotoru açık
RedirectMatch 301 ^ / metinler / veri / msg / (. *) \. Png $ http://olddomen.ru/texts/data/rimage/msg.php?id=$1
RewriteCond% (REQUEST_URI)! ^ / Metinler *
RewriteCond% (REQUEST_URI)! ^ / Market / vm2_market.xml $
RewriteRule ^ (. *) $ Http://newdomen.ru/$1

YönlendirmeMaç 301 Yönlendirme 301'e benzer, ancak daha fazla işlevselliğe sahip başka bir iyi yönlendirme yöntemidir. Yani normal ifadelere dayalı yönlendirmeler yapmak için kullanılabilir.

Örnekler:
RedirectMatch 301 ^ / eskidizin / http: // site / yenidizin /
(Bu, tüm dizini yenisine yönlendirecektir)

RedirectMatch 301 ^ (. *) $ Http: // site
(Bir 301 yönlendirmesi kullanarak tüm sayfaları eski alan adından yenisine yönlendirir (ağırlık da yeni siteye aktarılır))

RedirectMatch 301 (. *) \ .. php
(html uzantısından php uzantısına sayfa değiştirme)

RedirectMatch 301 /dirA/(.*)\..php
(Yalnızca PHP betiklerine erişirken dirA dizininden dirB dizinine yeniden yönlendirmeyi çalıştırır.
.php -> http: //site/dirB/page.php - çalışacak
http://site/dirB/page.html - çalışmaz)

Normal ifadeler için sözdizimi
... - Nokta, rastgele bir karakterin yerini alır.
- a, b veya c harfleriyle eşleşen karakterlerin listesini belirtir.
[^ abc] - belirtilen aralıkta olmayan karakterlerin listesi. a, b veya c dışındaki herhangi bir karakterle eşleşir.
* - önceki karakterin tekrarlanabileceği anlamına gelir (0 veya daha fazla kez).
* - komut, belirtilen kümeden ardışık karakterleri bulur.
[^ abc] * - tam tersi.

* - kesinlikle herhangi bir karakter kümesinin yerini alır. ". *" - tırnak işaretleri arasındaki tüm alt dizelerle eşleşir.
^ - bir satırın başlangıcı (eğer bir ifadenin başında kullanılıyorsa).
$ - satırın sonunu işaretler.

\ w - harf, sayı veya alt çizgi _.
\ d - herhangi bir rakamın yerini alır.
\ D - herhangi bir karakteri değiştirir, ancak bir rakamı değiştirmez.
- herhangi bir rakamın yerini alır.
- küçük harfle a'dan z'ye herhangi bir harf (tüm Latin karakter seti).
- BÜYÜK HARF içinde A'dan Z'ye herhangi bir harf.
- her durumda a'dan Z'ye herhangi bir harf.
- aynı.

Kurallarda kullanılan özel karakterler ve anlamları.
^ - bir satırın başlangıcının özel karakteri;
$ - satır sonu özel karakteri;
! - özel olumsuzlama karakteri;
... - nokta, herhangi bir karakterin yerine geçer, ancak yalnızca bir karakter;
() - gruplama;
\ - "escape" eğik çizgi, ondan sonraki karakter, özel bir karakter değil, normal olarak kabul edilir.

Değiştiriciler, sıradan, özel karakterlerden veya bunların gruplarından sonra kullanılır ve kuralları tetiklemek için şablonların yeteneklerinin genişletilmesine izin verir.
? - karakter 0 veya 1 kez tekrarlanır.
+ - 1'den 65536'ya kadar tekrar eder.
* - 0'dan 65536'ya kadar tekrar eder.

Bayraklar eklendi. kullanılan kural için seçenekler. Köşeli parantez içinde virgülle ayrılmış olarak listelenirler, örneğin veya.
NC - Kural tetiklendiğinde büyük/küçük harf kontrolünü devre dışı bırakan NoCase bayrağı.
R - Yönlendirme bayrağı, URL değişikliğini durdurma işlemini gerçekleştirir ve sonucu döndürür. En yaygın olarak kullanılan değer R = 301'dir, ancak diğerleri geçici yönlendirmeler için mümkündür (302, GEÇİCİ TAŞINMIŞTIR).
L - Son işaret, URL oluşturmayı durdurur ve dize nihai olarak kabul edilir.

php ile yönlendirme. Yeni bir adrese yönlendirilmesi gereken normal bir php sayfanız varsa, .htaccess olmadan da yapabilirsiniz.

Örnek:

başlık ("Konum: http: // site / kategori /"); çıkış (); ?>

Javascript ile yönlendirin. Ayrıca, yönlendirme (sayfa ağırlığını aktarmadan da olsa) düz javascript ile yapılabilir.

Örnek:

(site sayfasına normal yönlendirme)

(öncesinde kullanıcıya bir mesajın görüntülendiği bir web sitesi sayfasına normal yönlendirme)

Herkese merhaba!

Geçmişin teması -. En önemli noktalarından kısaca bahsettim ve bu dosyanın gerçekleştirdiği çeşitli işlevlerden bahsettim. Bu özelliklerden biri, 301 yönlendirmesi olarak da adlandırılan bir ziyaretçinin bir URL'den diğerine otomatik olarak yeniden yönlendirilmesidir.

301 yönlendirmesi nedir?

Dediğim gibi, 301 yönlendirmesi, bir ziyaretçiyi veya tarayıcıyı sitenizin bir sayfasından diğerine veya bir alan adından diğerine yönlendirmenize izin veren otomatik bir yönlendirmedir. Bütün bunlarla, tüm sözde puzomerki (, sayfa ağırlığı), yönlendirmenin gerçekleştiği URL'ye aktarılır.

Böylece bir siteyi başka bir alana taşırken ve aşağıda bahsedeceğimiz diğer durumlarda gerçek bir cankurtaran elde ediyoruz. Aynı zamanda, pratikte hiçbir şey kaybetmeyeceğiz.

Örnek. Daha önce Context-UP blogu şu URL'de bulunuyordu: http://blog.site (muhtemelen aranızda bu zamanları yakalayanlar vardır), o zaman sitenin ikinci seviye bir etki alanında olmasını istedim, yani. İsteğimi yerine getirmek için, blogun tüm içeriğini önce barındırmadaki başka bir dizine (klasöre), ardından panele aktarmam ve robotların yeni blog adresini indekslemeye başlaması için yeni bir etki alanı belirtmem gerekiyordu. Ancak tüm bunlardan sonra, bir yönlendirme ayarladım ..

Şimdi umarım bir 301 yönlendirmesinin ne olduğunu anlamışsınızdır.

301 htaccess yönlendirmesi nasıl kurulur?

Yönlendirme yapmanın birkaç yolu vardır, ancak en güvenli ve en kolayı .htaccess içindeki 301 yönlendirmesidir.

Bu nedenle, sırasıyla dosya ve yeniden yönlendirmenin çalışması için sözde modülleri etkinleştirmek gerekir. İki amacımız için kullanılabilir:

  1. Mod_rewrite;
  2. Mod_alias.

İlk seçenek en çok tercih edilenidir, çünkü kullanırken, her bir URL sayfasını ayrı ayrı kaydetmeniz gerekmeyecek, ancak yönlendirmenin gerçekleşeceği özel komutlar (aşağıdadır) kullanmanız yeterlidir.

Biz, yani hosting sağlayıcılarının basit müşterileri, bu modülü sadece .htaccess dosyası üzerinden site ile dizinimiz için etkinleştirebiliyoruz. Bu basitçe yapılır, sadece daha önce belirtilen dosyadaki satırı girin:

Yeniden YazmaMotoru Açık

Bu modül yalnızca Apache web sunucusuna bağlıysa çalışır. Bu nedenle, bu noktada yöneticilere danışın.

Bu eğitimin bir parçası olarak, bir 301 yönlendirmesi kurmamız gereken birkaç durumu analiz etmek istiyorum:

  1. Bir etki alanından diğerine geçiyorsanız;
  2. Sitenize www ile ve www olmadan erişilebiliyorsa;
  3. http'den https'ye;
  4. Bir sayfadan diğerine;
  5. index.html / php dizin dosyasından ana sayfaya.

Sırayla gidelim.

Başka bir etki alanına taşınma

Başka bir etki alanına taşınmaya karar verirseniz, ek yapılandırma dosyası.htaccess'e aşağıdaki komutu kaydetmeniz gerekir:

RewriteEngine On RewriteCond% (HTTP_HOST) old-domen.ru RewriteRule (. *) Http: //new-domen.ru/$1

301, www'den www olmayan URL'ye yönlendirme ve tam tersi

Bir arama robotu zor bir şeydir, bu nedenle bir web sitesiyle çalışırken bir web yöneticisinin birçok nüansı dikkate alması gerekir. Örnek olarak, bir arama motoru için, www (www.site.ru) adresinde bulunan ve tridable olmayan (site.ru) adresinde bulunan site, birbirini kopyalayan tamamen aynı iki web kaynağına bölünmüştür.

Bu nedenle, herhangi bir siteye yalnızca bir adresten erişilebilir: www ile veya www olmadan. Aksi takdirde sitenin konumu büyümeyecektir.

www.site.ru'dan site.ru'ya yönlendirme:

site.ru'dan www.site.ru'ya yönlendirme:

RewriteEngine On RewriteCond% (HTTP_HOST) ^ www \. (. *) RewriteRule ^ (. *) $ Http: //% 1 / $ 1

http'den https'ye

Güvenli https protokolüne yönlendirmek için bu kodu kullanın:

RewriteCond% (HTTPS) kapalı RewriteRule ^ (. *) $ Https: //% (HTTP_HOST)% (REQUEST_URI)

Sitenin bir sayfasından diğerine

Genellikle site ziyaretçilerini ve arama robotunu bir sayfadan diğerine yönlendirmeniz gerekir. Bu durumda htaccess'e aşağıdaki kodu yazmanız yeterlidir:

Yönlendirme 301 /stranica1..html

Bir zamanlar, CMS WordPress tarafından oluşturulan sayfadan ana sayfaya böyle bir 301 yönlendirmesi yapmam gerekiyordu, çünkü ilki ikincide olanı çoğalttı.

index.html veya index.php'den köke (eğik çizgi)

Başlangıçta, hemen hemen tüm sitelerde ana sayfa iki URL'de mevcuttur: http://site.ru/index.php ve http://site.ru/. Bu doğru değildir, çünkü ana sayfanın içeriği kopyalanır ve arama motorları siteyi arama sonuçlarında karalamaya başlar (kasıtlı olarak siteyi aşağı indirir).

Bunu önlemek için aşağıdakileri kaydetmeniz gerekir:

index.html'den yönlendirmek istiyorsanız

RewriteCond% (THE_REQUEST) ^ (3.9) \ / index \ .html \ HTTP / RewriteRule ^ index \ .html $ http: // site /

index.php'den yönlendirmek istiyorsanız

RewriteCond% (THE_REQUEST) ^ (3.9) \ / index \ .php \ HTTP / RewriteRule ^ index \ .php $ http: // site /

Bu materyali, ihtiyacınız olduğunda bir kopya kağıdı olarak kullanın. Sadece gerekli kodu kopyalayıp .htaccess'e yapıştırmanız yeterlidir.

İşte bu kadar, sevgili dostlar!

Blog güncellemelerine abone olmayı ve sosyal ağlarda derslerin bağlantılarını paylaşmayı unutmayın.

Yakında görüşürüz!

önceki makale
Sonraki makale

301'i yönlendir veya 301 Kalıcı Yönlendirme, kullanıcıyı otomatik olarak başka bir sayfa adresine yönlendiren bir kuraldır. Yardımı ile eski sayfaları yenileriyle yapıştırabilir veya siteyi başka bir alana aktarabilir, siteden birçok kopyayı kaldırabilir ve çok daha fazlasını yapabilirsiniz. Son derece faydalı bir şey - bu yüzden nasıl doğru yapılacağını öğrenmeniz gerekiyor!

Ayrıca, 301 yönlendirmesi ile TCI yapıştırılır (okunur) ve PR - yani. eski değeri yeni adreste tutabilirsiniz. Arama motorlarının gözünde hiçbir şey kaybetmezsiniz. Teoriden pratiğe geçelim.

htaccess'te 301 yönlendirmesi nasıl kurulur

Sitenizin ana kategorisinde .htaccess adlı bir dosya bulunur. Bu, yapıştırma kurallarını belirleyeceğimiz bir servis dosyasıdır. Dosyayı not defteri ile açın (tavsiye ederim not defteri ++ kodlama sorunlarından kaçınmak için). Bunun önemli noktalardan biri olduğunu unutmayın.

.htaccess için kullanacağımız genel şablon:

Seçenekler + FollowSymLinks RewriteEngine On # Burada kuralları belirtiyoruz

Tüm kurallar şu şekilde yazılır:

RewriteCond [Karşılaştır] [Koşul] [İşaretler] RewriteCond [Karşılaştır] [Koşul] [İşaretler] RewriteRule [Şablon] [İkame] [İşaretler]

Şimdi doğrudan yönlendirme ile ilgileneceğiz ve belirli örnekleri analiz edeceğiz.

Daha önce bununla ilgili bir yazı yazmıştım, ama her ihtimale karşı, sayfayı kullanmanızı kolaylaştırmak için burada özetleyeceğim.

301 yönlendirmelerini kullanma örnekleri

index.php'den ana sayfaya yönlendirme

Yapılandırmak için, ziyaretçileri site.ru/index.php adresinden site.ru'ya yönlendirecek olan aşağıdaki kodu dosyanıza yazmanız gerekir:

RewriteCond% (THE_REQUEST) ^ (3.9) \ / index \ .php \ HTTP RewriteRule ^ index \ .php $ http://site.ru/

Ayrıca index.html'den yönlendirme yapmanız gerekiyorsa, yukarıdaki kodda .php'yi .html ile değiştirin.

Site takma adlarını yapıştırın

Birden fazla alan adınız varsa ve hepsini ana siteye yönlendirmek istiyorsanız, şunu kullanırız:

RewriteCond% (HTTP_HOST) ^ vash-sait.com $ RewriteCond% (HTTP_HOST) ^ www.vash-sait.com $ RewriteCond% (REQUEST_URI)! ^ / Robotlar. * RewriteRule ^ (. *) $ Http: // vash- sat.ru/1$

İlk 2 satıra dikkat edin, the.com bölgesinde bir ayna var, başka veya birkaç bölgeniz varsa, kuralları ekleyin.

www'den www olmayanlara yönlendirme

Bu yöntemi daha önce tanımlamıştım, ancak kendimi tekrarlayacağım. Aynaları yapıştırmak ve www olmadan ana etki alanını seçmek için şunu yazın:

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

www içermeyen bir alandan www olan bir alana yönlendirme

Bu eylem öncekinin tam tersidir, sadece ana ayna burada www.site.ru:

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

Eğik çizgili ve çizgisiz 301 sayfa yönlendirmeleri

Bu başka bir kopya türüdür, burada site.ru/category/ ve site.ru/category sayfalarını yapıştırıyoruz, gördüğünüz gibi ikinci url'nin sonunda eğik çizgi yok:

RewriteCond% (REQUEST_FILENAME)! -D RewriteCond% (REQUEST_URI) ^ (. +) / $ RewriteRule ^ (. +) / $ / $ 1

Aksine, url'nin sonunda bir eğik çizgi bırakmanız gerekiyorsa, bu seçeneğe ihtiyacınız vardır:

RewriteBase / RewriteCond% (REQUEST_FILENAME)! -F RewriteCond% (REQUEST_URI)! (. *) / $ RewriteRule ^ (. * [^ /]) $ 1 /

Herhangi bir nedenle site.ru/category//article.html gibi URL'leriniz varsa, kodu kullanın:

RewriteCond% (REQUEST_URI) ^ (. *) // (. *) $ RewriteRule. % 1 / % 2

burada, "//", "-" veya url'deki herhangi bir çift karakter ile değiştirilebilir.

Toplu kategori değişimi

Bir kategoriyi yeniden adlandırdınız ve ona binlerce URL atandı. Binlerce aynı yönlendirmeyi yazarken yaşlanmamak için şunları kullanıyoruz:

RewriteRule ^ (. *) / Eski kategori /(.*)$ 1 $ / yeni kategori / 2 $

RewriteRule eski kategori /(.*) / eski kategori / 1 $

Yeni bir sayfaya yönlendir

Sayfadan sayfaya en basit yönlendirmeyi şu şekilde yazmanız yeterlidir:

Yönlendirme 301 /old-post.html http://new-site.ru/new-post.html

old-post.html eski sayfanız ve new-site.ru/new-post.html yeni sayfanız olduğunda ve herhangi bir alan adında olabilir (mevcut alan adınız dahil).

parametrelerle url için yönlendirme

Parametreli sayfaların yeniden yönlendirilmesi daha zordur, bir örnek alalım http://site.ru/page.php?sort=articles. Buradaki parametre "sort = makaleler"dir. Kod aşağıdaki gibi olacaktır:

RewriteCond% (QUERY_STRING) sort = makaleler RewriteRule * Http://site.ru/page.php?

Uzantılarla çalışma

.html'yi url'den kaldırın (.php'yi kaldırmak için $ 1.html'yi $ 1.php ile değiştirmeyi unutmayın):

RewriteRule ^ (([^ /] + /) * [^.] +) $ /$1.html [L]

URL'lerde .php'yi .html olarak değiştirin ve bunun tersi de geçerlidir (koddaki yerleri değiştirmeyi unutmayın):

RedirectMatch 301 (. *) \. Php $ http: //www.site.com$1.html

Yeni bir etki alanına 301 yönlendirmesini düzeltin

Bu maddeyi ayrıca vurguladım, tk. Alan adı transferi ile daha çok ilgisi var. Burada önemli bir nokta var, robotu düzenleme yönergesini kaçırmamak - kodun 3. satırında belirtilmiştir.

RewriteCond% (REQUEST_FILENAME) robots.txt $ RewriteRule ^ ([^ /] +) $ 1 [L] RewriteCond% (HTTP_HOST) ^ site \ .ru RewriteRule ^ (. *) $ Http://new-site.ru/ $1 RewriteCond% (HTTP_HOST) ^ www.site \ .ru RewriteRule ^ (. *) $ Http://new-site.ru/$1

Bu tür kurnaz olmayan maskaralıkların yardımıyla, yinelenen sayfalardan kurtulacağız, böylece dahili optimizasyonumuzu ve buna bağlı olarak sitenin kalitesini iyileştireceğiz.

Herhangi bir sorunuz varsa, yorumlara yazın - çözeceğiz 🙂

Yönlendirme, kullanıcıları ve tarayıcıları başlangıçta istenenden farklı bir URL'ye yönlendirmenin bir yoludur. Bazıları aşağıda listelenen çeşitli çağrı yönlendirme türleri vardır.

301 Kalıcı Olarak Taşındı

301, istenen sayfanın yeni bir adreste bulunduğunu ve eskisinin geçersiz sayılması gerektiğini belirten kalıcı bir yönlendirmedir. Bu yönlendirme türü, bağlantı kütlesinin %90-99'unu yeni URL'ye aktarır.

Kanonikleştirme veya alan yapıştırma

Bir etki alanını www'den şu adrese yapıştırmak için olmadan www:

RewriteCond% (HTTP_HOST) ^ www.site \ .com $ RewriteRule ^ (. *) $ Http://site.com/$1

Bir alanı www olmadan www'ye yapıştırmak için:

RewriteCond% (HTTP_HOST) ^ site \ .com $ RewriteRule ^ (. *) $ Http://www.site.com/$1

Doğru yapıştırma yöntemini seçmek için aşağıdaki faktörleri göz önünde bulundurmanız gerekir:

  • Hangi seçeneğin indeksleme oranı daha yüksektir;
  • Arama sonuçlarında hangi varyantın daha yüksek bir konuma sahip olduğu;
  • Adresin sonundaki eğik çizginin kurallı hale getirilmesi.

Site projesi oluştururken adresin sonunda eğik çizgi kullanıp kullanmayacağınıza karar vermeniz gerekir. Arama motorları için aşağıdaki gibi adresler:

  • http://www.site.com/category1
  • http://www.site.com/category1/

Farklı url'lerdir. Bu nedenle sitenizde ne tür adreslerin olacağına karar verirken, sitenize giriş yapabilmek için böyle bir kod kaydetmeniz gerekir. sondaki eğik çizgiyi kaldırmak için:

RewriteCond% (HTTP_HOST) (. *) RewriteCond% (REQUEST_URI) / $ RewriteRule ^ (. *) (/) $ 1

veya bunu eklemek için:

RewriteCond% (REQUEST_FILENAME)! -F RewriteCond% (REQUEST_URI)! (. *) / $ RewriteRule ^ (. * [^ /]) $ $ 1 /

301 yönlendirmesi için bir sayfadan diğerine:

Yönlendirme 301 /oldpage.html http://www.site.com/newpage.html

Ana sayfanın herhangi bir sürümünü talep ederken, örneğin: varsayılan.htm veya index.html, http://www.site.com kurallı sayfasına bir yönlendirme yapılacaktır, aşağıdaki yönlendirme kodunu yazmanız gerekir:

RewriteCond% (THE_REQUEST) ^ (3.9) \ / ([^ /] + /) * (varsayılan | dizin | ana) \. (Html ​​​​| php | htm) \ HTTP / RewriteRule ^ (([^ /] + /)*)(varsayılan|ana|dizin)\.(html|php|htm)$ http://www.site.com/$1

Dizin yönlendirmesi

Adreste dizin yapısı görüntüleniyorsa, değiştirdiğinizde adresi de değiştirmiş olursunuz. Bu nedenle, aşağıdaki yönlendirmeyi kaydetmeniz gerekir:

RewriteRule ^ (. *) / Eski katalog /(.*)$ 1 $ / yeni katalog / 2 $

Ancak, eski kataloğun adresi, alan adından hemen sonra görüntülenir, örneğin www.site.com/old-catalog/. Bu durumda, aşağıdaki kod kullanılır:

RewriteRule eski katalog /(.*) / eski katalog / 1 $

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

CMS'yi değiştirirken, genellikle yalnızca dosya uzantısı değişir. Bu durumda sayfaları standart hale getirmek için aşağıdaki gibi bir kod kullanmanız gerekir:

RedirectMatch 301 (. *) \. Php $ http: //www.site.com$1.html

Birden çok eğik çizgi veya kısa çizgi göründüğünde yönlendir

Çeşitli nedenlerle, adreste fazladan eğik çizgiler veya tireler görünebilir, örneğin www.site.com/catalog////page-1.html... Bu tür sayfalar bir eğik çizgi ile adreslere yönlendirilmelidir.

RewriteCond% (REQUEST_URI) ^ (. *) // (. *) $ RewriteRule. % 1 / % 2

Aynı şekilde adresteki fazladan tireler kaldırılır, örneğin www.site.com/catalog/page-1.htmlüzerinde www.site.com/catalog/page-1.html.

RewriteCond% (REQUEST_URI) ^ (. *) - (. *) $ RewriteRule. % 1-% 2

.htaccess - alan adından sonra fazladan eğik çizgiler

  • http://site.com//////catalog

Tüm bu eğik çizgileri kaldırmak, böylece eğik çizgi olmayan bir sayfaya yönlendirme yapmak, ör.

  • http://site.com/catalog

Kayıt olmanız gerekir:

RewriteCond% (REQUEST_URI) ^ (. *) // (. *) $ RewriteRule. % 1 / % 2

301 yönlendirmeleri oluşturma

Kendi kodunuzu yazmak için yeterli teknik bilgiye sahip değilseniz, tüm ana yönlendirmeleri oluşturmak için özel hizmetler vardır:

Buradan verilerinizi girerek istediğiniz kodu anında alabilirsiniz. Etki alanları, url adresleri, dizinler için yönlendirmeler desteklenir.

301 yönlendirmeleri nasıl kontrol edilir?

Yönlendirmenin mantıksal kısmında herhangi bir değişiklik yaptıktan sonra performansını kontrol etmeniz gerekir. Manuel kontrol için ihtiyacınız olan:

  • Sitenin çalışıp çalışmadığını kontrol edin - ana sayfasına gidin;
  • Siteye, bölümlerine ve tek tek sayfalarına göz atın.

Ancak, yönlendirmeleri otomatik olarak kontrol etmeye yönelik hizmetler de vardır:

  • http://bertal.ru - tüm sunucu yanıtlarıyla ilgili çok ayrıntılı veriler

301 yönlendirmeleri, Canonical'a karşı nasıl kullanılır?

Google arama motoru net kurallar koyar, ancak bunlara uymanız durumunda eylemlerinizi doğru bir şekilde yorumlayacaktır. Arama motorları 301 ve Canonical tam anlamıyla şu şekilde anlıyor:

  • - bu sayfa güncel değil, yeni sayfa filan yerde bulunuyor. Eski sayfayı dizinden çıkarmanızı, yenisini indekslemenizi ve eskisinin tüm ağırlığını ona aktarmanızı rica ediyorum.
  • Kanonik - sayfanın bu sürümüne ek olarak başkaları da var. Ancak lütfen yalnızca Canonical'in üzerinde durduğunu indeksleyin. İnsanların görmesi için diğer sürümler orada olacak, ancak bunları dizine eklemeniz gerekmiyor. Tüm ağırlık Canonical sayfasına aktarılmalıdır.

301 yönlendirmelerini kullanma tercihleri

Bu genellikle tercih edilen yöntemdir:

  • Tek tek sayfalar için - adresi sonsuza kadar değiştiyse;
  • Alan adları için - site kalıcı olarak yeni bir alan adına yerleştirilecekse;
  • 404 sayfa ve artık alakalı olmayan içeriğe sahip sayfalar için. Örneğin, katalogdan bir ürünü silerken, işlev olarak benzer bir ürüne veya bu tür bir ürüne sahip bir katalog sayfasına yönlendirebilirsiniz.

301 yönlendirmesini kullanmamak ne zaman daha iyidir?

  • Uygulanmaları imkansızsa veya makul olmayan bir şekilde uzun zaman alacaksa.
  • İçerik iki sayfada çoğaltılıyorsa, ancak bazı farklılıklar nedeniyle (örneğin, kıyafetlerin boyutu) her ikisi de kullanıcıya açık olmalıdır.
  • Bir sayfanın birden fazla URL'si varsa (dizini farklı kriterlere göre sıralama).
  • Etki alanları arası için, iki adresteki içerik çoğaltılabilir, ancak her bir etki alanında olması gerekir.

Gönderiyi beğendin mi? → düğmelerine tıklayın