İndex.html kullanmanın doğru yolu


9

Fikrinizi duymak istediğim pek çok sorunum var, bu yüzden umarım yeterince iyi açıklayacağım. Ayrıca güçlü bir PHP kullanarak basit bir çözüm olduğundan neredeyse emin olmama rağmen, sadece HTML ve CSS bilgisi ile donatılmış acemi olduğumu da belirtmeliyim, bana yardımcı olmayacak .

Diyelim ki adresimde kişisel blogum example.com/blog.htmlvar ve çeşitli alt bloglar example.com/blog/math.html, example.com/blog/coding.htmlvb. Bağlantıları var. Kök klasörüm blog.htmlve blogklasör içeriyor , blogklasörün kendisi math.htmlve dosyaları içeriyor coding.html.

Her şeyden önce, ( Google Webmaster Araçları'ndan ) SEO ve estetik amaçlar için birleştirmenin example.com.comve kaynağına nitelik example.com/index.htmlekleyerek iyi olduğunu öğrendim . (Bağlantı gibi diğer hileler bir çift kullanarak ve ben çirkin kurtulunması) benim web adreslerinde görünen._rel="canonical"_index.html.././index.html

Ve şimdi bu hile sadece kök klasör için değil, herhangi bir klasör için kullanılabilir mi acaba? Ben hamlemi açar ki blog.htmliçine blog, klasöre yeniden adlandırmak index.htmlve ekleme rel="canonical"birleştirmeye example.com/blog/index.htmlile example.com/blog/.
Bu hile benim blogun adresini değiştirecek example.com/blog.htmliçine example.com/blog/.

Bitmedi! Ayrıca Google robotumun klasörleri dizine eklemesiyle ilgili sorunlar yaşıyorum. Ben yazarken Yani site:example.com/google arama, benim klasöre bağlantı haline example.com/blog/simgeler vb ham dosyaları ile diğer sonuçları arasında görünür. Bunu düzeltmenin başka yolları da var sanırım, ancak IMHO yukarıda belirtilen değişiklik de hile yapacaktır - blog klasöründeki index.html , kullanıcının bu klasörün gerçek ham içeriğini görüntülemesini koruyacak, sadece görünecekti example.com/blog/google aramadaki doğru bağlantı ve (umarım) _rel="canonical"_ikinci, istenmeyen bağlantının example.com/blog/index.htmlarama sonuçlarında görünmemesini sağlar.

Yani sorularım:

  1. index.htmlDosyayı her alt klasörde bulundurmak iyi bir uygulama mı yoksa sadece kök klasöründe mi olması amaçlanıyor?
  2. İkinci " her klasördeki dizin " yöntemini kullanırken oluşabilecek herhangi bir dezavantaj veya sorun var mı?
  3. Yukarıda açıklanan web sitesini yapılandırmanın iki yolundan hangisini tercih edersiniz ?

Açıklamam için, arama motorları site.com/blog ve site.com/blog/index.html adreslerinin 2 ayrı dosya olduğunu düşünüyor mu? Her iki URL'ye de bağlantılar kullanılıyorsa, bağlantı suyu / sayfa yetkisini 2 konum arasında bölme şansınız var mı?

Bildiğim kadarıyla, arama motorları (en azından Google) bunları iki ayrı dosya olarak görüyor. Aslında farklı olabilirler - iki bağlantı sadece tek bir eğik çizgide farklılık gösterebilir. (Daha fazla bilgiyi buradan okuyun .) Ve evet, bir sayfaya iki farklı bağlantı kullanıyorsanız, sayfanın tüm sıralaması bu iki bağlantı arasında bölünür ve sayfanız sıralamasının yarısını etkili bir şekilde kaybeder. Bu yüzden bu sızıntıları önlemek için söz konusu bağlantı standartlaştırmasını öneriyorum.
Jeyekomon

Yanıtlar:


13

Kullandığımız nedeni index.htmlveya home.htmlweb sunucusu yazılımı çünkü bunların ya türevlerine olduğunu kendisi aslında arar ve onu görür. Örneğin:

Bu GEÇERSİZ: (www-dizin)

/var/www/
|_blog.html
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

Bu aslında klasörleri ve dosyaları listeleyen bir sayfa olarak sunulur. (Ne istiyorsan değil). Bu yapıyı deneyebilir, ancak blog.html'nin yanında bir index.html dosyası da oluşturabilirsiniz. Siz belirtmedikçe blog.html'in nasıl sunulmayacağına dikkat edin http://www.site.com/blog.html) Bu yüzden http://www.google.com/sayfayı belirtmenize gerek kalmadan gösterirhttp://www.google.com/index.html

Bu VALID:

/var/www/
|_index.html (renamed blog.html to index.html)
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

Bu, blog.htmldosyanızı ANASAYFA OLARAK sunacaktır . (Bu dizindeki tüm klasörleri / dosyaları listelemez)

Web sunucusu yazılımı (yapılandırmada) bir klasörün ana sayfası veya ana sayfası olarak sunulacak özel bir dosya adları listesine sahiptir. (Benim tecrübeme göre, index.htmlindex.php'den önceliklidir, bu nedenle index.htmlve index.phpbir klasörde, index.html halkın göreceği şeydir) Tabii ki hepsi değiştirilebilir ve hatta blog.htmlbir "endeks".

Yorumunuzu adresleme:

"Bu hile blogumun adresini www.xxx.com/blog.html'den www.xxx.com/blog/ olarak değiştirir."

Bu blog.htmltamamen içine taşınarak /blog/ve index.html olarak yeniden adlandırılarak yapılır .

Yeni yapınız:

/var/www/
|_blog/
  |_index.html (renamed from blog.html)
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

Bu , yazılımın dizininizin dizini olarak ayarlanabilmesi için http://www.site.com/blog/adını değiştirdiğimiz blog.html içeriğinizi doğru bir şekilde göstermelidir.index.html/blog/

Artık bağlantılara sahip olmak ve başka herhangi bir şey yapmak index.htmliçin sitenizin kök dizinine dosya http://www.site.com/(index.html)ekleyebilir /blog/ve dosyalayabilirsiniz.

Sorularınızı özellikle kısa ifadelerle cevaplamak:

  1. İndex.html dosyasının her alt klasörde olması iyi bir uygulamadır veya yalnızca kök klasöründe olması amaçlanıyor mu?

    Evet, çünkü kişilerin dizinlerinizde hangi dosyaların olduğunu görmesini engeller. Bunu .htaccessiçeren bir dosya ile bunu önleyebilirsinizOptions -Indexes

  2. İkinci "her klasördeki dizin" yöntemini kullanırken oluşabilecek herhangi bir dezavantaj veya sorun var mı?

    Aklıma gelen hiçbir şey yok.

  3. Yukarıda açıklanan web sitesini yapılandırmanın iki yolundan hangisini tercih edersiniz?

    Genellikle kökte bir index.htmlveya index.phpdosya, kategoriye ( forumveya newsveya loginvb.) Dayalı alt klasörler ve daha sonra her biri içinde bir tür dizin var.


Böyle kapsamlı bir cevap için teşekkürler! Klasörlerime bu genel erişim ve google tarafından endekslenmiş olmaları gerçeği beni oldukça kızdırıyor, bu yüzden "her klasördeki dizin" hilesi ile ilgili bir sorun olmadığını bildiğimde, web sitemi bu şekilde değiştireceğim. Ben sadece rel = "canonical" hile çalışır ve tüm bu dizinler google arama görünmez
umuyoruz

6

İndex.html için teknik terim Apache için Dizin Dizini ve IIS için Varsayılan Belge'dir. İlgilenilen diğer Apache yönergesi, Seçenekler yönergesidir. Belgelerde belirtildiği gibi Options Indexesayarlandığında:

Bir dizine eşlenen bir URL istenirse ve bu dizinde DirectoryIndex (ör. İndex.html) yoksa, mod_autoindex dizinin biçimlendirilmiş bir listesini döndürür.

İçerik yönetim sistemi kullanmayan bir web sitesi kurduğumda, tercih ettiğim kurulum dizin başına bir içerik sayfasına sahip olmak. Bu sayfa, dizinin dizin dizinidir (varsayılan belge). Sitedeki tüm bağlantılar yalnızca dizine bağlanır ve sonunda eğik çizgi ile biter (örneğin, http://example.com/blog/yerine http://example.com/blog/index.htmlveya ./blog/yerine ./blog/index.html). Sondaki eğik çizgi, genel olarak nezaket yönlendirmesi olarak adlandırılan şeyden kaçınmak için önemlidir . (Sondaki eğik çizgi atlanırsa, her şey yine de doğru şekilde çözülür, ancak HTTP isteklerinin sayısı ve dolayısıyla bant genişliği artar.)

Yukarıdaki metodoloji için birincil motivasyonum iki yönlüdür. İlk olarak, web sitesinde kullanılan teknolojinin değiştirilmesini kolaylaştırır. Örneğin, herhangi bir bağlantıyı veya arama motoru listesini bozmadan index.html'den index.php'ye bir sayfa değiştirebilirim. İkinci olarak, bir içerik sayfasının dosya uzantısı "gürültü" dür; dosya uzantısının URL'den kaldırılması daha kısa ve umarım daha okunabilir URL'lerle sonuçlanır.

Diğer dosya türlerine gelince:

  • Tüm CSS dosyaları web sitesinin kökündeki bir css dizininde bulunur.
  • Tüm görüntü dosyaları, web sitesinin kökündeki bir görüntü dizininde veya alt dizininde bulunur.
  • Tüm JavaScript dosyaları, web sitesinin kökündeki bir komut dosyası dizininde bulunur.
  • Tüm flash ve diğer film dosyaları, web sitesinin kökündeki bir video dizininde veya alt dizininde bulunur.

Bir Apache sunucusunda, Options Indexesyukarıda belirtilen dizinleri devre dışı bırakıyorum. Hem Apache hem de IIS sunucularında, yukarıda belirtilen dizinler için bir dizin dizini (varsayılan belge) belirtmiyorum. Böylece, herhangi bir dizin için bir istek bir HTTP 403 hatası ile sonuçlanır.


İki bağlantı sınırı kısıtlaması nedeniyle, cevabımda Dizin Dizini ve Varsayılan Belgeye bağlantılar ekleyemedim , işte buradalar.
Ryan Prechel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.