Back to Question Center
0

Semalt, aynı dizinde barındırılan her site için farklı bir robots.txt dosyası

1 answers:

Sadece LATAM bölümünde çalışmakta olduğumuz global bir marka web sitesi projemiz var. Semalt, maliyetleri düşürmek için birkaç ccTLD ile bir web sitesi kurulumuna izin veren bir web sitesi kurulum işlemidir.

Bu nedenle robotlar. www adresindeki txt - micro fleece rabbits. domain. com / robotlar. txt , www dosyasındaki aynı dosyadır.domain. com. ar / robotlar. txt .

Özel robotlar uygulamak istiyoruz. Her bir LATAM ülke yerel ayarı için txt dosyaları (AR, CO, CL vb.). ). Düşündüğümüz bir çözüm, www adresine yeniden yönlendirme yapıyor.domain. ar / robotlar. txt ila 301 ila www. domain. com. ar / dizin / robotlar. txt .

Bu şekilde özel robotlara sahip olabiliriz. txt dosyaları her ülke için yerel ayar.

  1. Bu mantıklı mı?
  2. Bir robotları yönlendirmek mümkün mü. txt dosyasını başka robotlara. txt dosyası?
  3. Başka öneri var mı?

Girdiğiniz herhangi bir girdi için önceden Semalt.

February 6, 2018

Bir örümcek aleyhinde robotlara ulaşmak için yönlendirmeyi takip edebilen her örümceğe güvenmemeliydim. txt dosyası. Bakınız: Google, robotlar için yeniden yönlendirme başlıklığına saygı duyuyor mu?. txt'den farklı bir dosya adına

Bir Apache sunucusunda barındırılıyorsa, adresinden mod_rewrite kullanabilirsiniz.Doğru etki alanı için doğru dosyayı sunmak için htaccess dosyası:

  RewriteEngine Açık
RewriteCond% {HTTP_HOST} ^ www \. örnek\. ([A-z \. ] +) $
RewriteRule ^ robotlar. txt /% 1 / robotlar. txt [L] 

Bu durumda, robotlarınız. txt dosyası . cl alanı / cl / robots olurdu. txt ve . com. au robotlar. txt dosyası / com'da olurdu. au / robotlar. txt

Bu çalışırken, birkaç potansiyel dezavantajı vardır:

  • Her tarayıcı iki HTTP isteği yapmalıdır: biri yönlendirmeyi keşfetmek için ve bir tane de aslında dosyayı getirmek için.

  • Bazı tarayıcılar, robotlar için 301 yanıtını işlemez. txt doğru; orijinal robotlarda hiçbir şey yok. Yönlendirmeler hakkında bir şey söyleyen txt belirtimi , bu nedenle sıradan web sayfaları gibi (i. e. ) Takip etti, ama garantisi yok ki Tüm bu doğru alacak sitenizi taramasını isteyebilirsiniz sayısız robotlar.

    [o] n sunucu cevabının Yönlendirmeyi (HTTP Status Code 3XX) gösteren bir kaynağın bir kaynak bulunana kadar yönlendirmeleri takip etmesi gerektiğini açıkça söylemektedir ( 1997 İnternet Taslağı ) "olarak değiştirildi ancak resmi bir standart haline getirilmediğinden, herhangi bir tarayıcı tarafından aslında onu izlemek gerçek bir gereklilik değildir. )

Genel olarak, web sunucunuzu yalnızca robotlar için farklı içerik döndürmek üzere yapılandırmanız daha iyi olur. txt için istenen etki alanına bağlı. Örneğin, Apache mod_rewrite kullanarak, dahili olarak robotları yeniden yazabilir. txt aşağıdaki gibi bir alana özgü bir dosyaya dönüştürür:

  RewriteEngine Açık
RewriteBase /RewriteCond% {HTTP_HOST} ^ (www \. )? Domain (\. com?)? \. ([A-z] [a-z]) $
RewriteCond robots_% 3. txt -f
RewriteRule ^ robotlar \. txt $ robots_% 3. txt [NS] 

Bu kod, bir . sitelerin paylaşılan belge kökündeki htaccess dosyasını e. g. www. domain. com. ar / robotlar. txt dosyaya robots_ar. txt , var olması şartıyla (ikinci RewriteCond'un denetlediği şey). Dosya mevcut değilse veya ana makine adı regexp ile eşleşmezse, standart robotlar. txt dosyası varsayılan olarak sunulur.

(Ana makine adı regexp, www içermeyen URL'lerle de eşleşecek kadar esnek olmalıdır. önekini ve aynı zamanda 2LD co. yerine com. ( 'de olduğu gibi). ko. uk ) ya da alanından sonra sadece düz bir ccTLD; gerekirse daha fazla vakayı kabul edecek şekilde değiştirebilirsiniz.Bu kodu test etmediğime dikkat edin, böcek / yazım hataları olabilir. )

Başka bir ihtimal, robotlar için talepleri dahili olarak yeniden yazmak olabilir. txt - (e. g. ) bir PHP betiği, daha sonra dosyanın içeriğini dinamik olarak ana makine adına ve istediğiniz başka bir şey üzerine üretebilir. Mod_rewrite ile bu basitçe:

  RewriteEngine Açık
RewriteBase /RewriteRule ^ robotlar \. txt $ robotlar. php [NS] 

(Gerçek robot yazma. php yazısı bir egzersiz olarak bırakılmıştır. )