Cara tepat menggunakan index.html

9

Saya punya cukup banyak masalah yang ingin saya dengar pendapat Anda, jadi saya harap saya bisa menjelaskannya dengan cukup baik. Saya juga harus mencatat bahwa saya pemula hanya dilengkapi dengan pengetahuan tentang HTML dan CSS jadi meskipun saya hampir yakin bahwa ada solusi sederhana menggunakan PHP yang kuat, itu tidak akan membantu saya .

Katakanlah saya memiliki blog pribadi saya di alamatnya example.com/blog.htmldan ada tautan ke beberapa sub-blog example.com/blog/math.html, example.com/blog/coding.htmldll. Jadi folder root saya berisi blog.htmldan blogfolder, blogfolder itu sendiri berisi file math.htmldan coding.html.

Pertama-tama, saya belajar (dari Google Webmaster Tools ) bahwa untuk keperluan SEO dan estetika ada baiknya menyatukan example.com.comdan example.com/index.htmldengan menambahkan _rel="canonical"_atribut ke dalam sumber index.html. Dengan menggunakan beberapa trik lain (seperti menautkan ke ../dan ./), saya menyingkirkan tampilan jelek index.htmldi alamat web saya.

Dan sekarang saya bertanya-tanya apakah trik ini dapat digunakan tidak hanya untuk folder root tetapi untuk folder apa pun ? Maksud saya, saya akan memindahkan folder saya blog.htmlke dalam blogfolder, mengubah nama menjadi folder index.htmldan menambahkan rel="canonical"untuk menyatukan example.com/blog/index.htmldengan example.com/blog/.
Trik ini akan mengubah alamat blog saya dari example.com/blog.htmlmenjadi example.com/blog/.

Belum selesai! Saya juga mengalami masalah dengan robot google yang mengindeks folder saya. Jadi ketika saya mengetik site:example.com/di pencarian google, tautan ke folder saya example.com/blog/dengan file mentah, ikon dll muncul di antara hasil lainnya. Saya kira ada juga cara lain untuk memperbaikinya, tetapi IMHO perubahan yang disebutkan di atas akan melakukan trik juga - index.html di folder blog akan menjaga pengguna dari melihat konten mentah sebenarnya dari folder itu, hanya akan muncul saja tautan yang tepat example.com/blog/dalam pencarian google dan (saya harap) _rel="canonical"_akan membuat tautan kedua yang tidak diinginkan example.com/blog/index.htmltidak muncul dalam hasil pencarian.

Jadi pertanyaan saya adalah:

  1. Apakah ini praktik yang baik untuk memiliki index.htmlfile di setiap subfolder atau apakah itu dimaksudkan hanya di folder root?
  2. Apakah ada kelemahan atau masalah yang mungkin terjadi saat menggunakan metode " indeks di setiap folder " yang kedua?
  3. Salah satu dari dua cara penataan situs web yang dijelaskan di atas yang Anda inginkan?
Jeyekomon
sumber
Untuk klarifikasi saya, apakah mesin pencari melihat site.com/blog dan site.com/blog/index.html sebagai 2 file yang berbeda? Jika tautan dengan kedua URL digunakan, apakah ada kemungkinan Anda membagi otoritas tautan / halaman di antara 2 lokasi?
Sejauh yang saya tahu, mesin pencari (setidaknya Google) TIDAK melihatnya sebagai dua file yang berbeda. Karena mereka sebenarnya bisa berbeda - kedua tautan hanya dapat berbeda dalam satu tebasan tunggal. (Baca lebih lanjut di sini .) Dan ya, jika Anda menggunakan dua tautan berbeda ke satu halaman, seluruh peringkat halaman dibagi antara dua tautan itu dan halaman Anda secara efektif kehilangan setengah dari peringkatnya. Itu sebabnya saya menyarankan tautan kanonikisasi yang disebutkan untuk mencegah kebocoran tersebut.
Jeyekomon

Jawaban:

13

Alasan kami menggunakan index.htmlatau home.htmlatau turunannya, adalah karena perangkat lunak server web itu sendiri benar-benar mencari dan menyajikannya. Sebagai contoh:

Ini INVALID: (direktori-www)

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

Ini sebenarnya akan disajikan sebagai halaman yang mencantumkan folder dan file. (Bukan yang Anda inginkan). Anda dapat mencoba struktur ini, tetapi juga membuat file index.html di sebelah blog.html. Perhatikan bagaimana itu tidak akan melayani blog.html kecuali Anda menentukan http://www.site.com/blog.html) Inilah sebabnya mengapa http://www.google.com/menunjukkan halaman tanpa Anda harus menentukanhttp://www.google.com/index.html

Ini VALID:

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

Ini akan melayani blog.htmlfile Anda SEBAGAI RUMAH. (Tidak mencantumkan semua folder / file dalam direktori itu)

Perangkat lunak server web memiliki (dalam konfigurasi) daftar khusus nama file yang akan disajikan sebagai beranda atau halaman utama folder. (Dalam pengalaman saya, index.htmllebih diutamakan daripada index.php, jadi jika Anda memiliki index.htmldan index.phpdalam folder, index.html adalah apa yang akan dilihat publik). Tentu saja itu semua bisa diubah, dan Anda bahkan dapat mengatur blog.htmlagar diakui sebagai "indeks".

Mengatasi komentar Anda:

"Trik ini akan mengubah alamat blog saya dari www.xxx.com/blog.html menjadi www.xxx.com/blog/."

Ini akan dilakukan dengan memindahkan blog.htmlseluruhnya ke /blog/dan mengganti nama ke index.html.

Struktur baru Anda adalah:

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

Ini seharusnya berfungsi dengan benar http://www.site.com/blog/untuk menunjukkan isi blog Anda.html yang kami beri nama baru index.htmlagar perangkat lunak dapat mengaturnya sebagai indeks direktori Anda/blog/

Anda juga bebas sekarang untuk meletakkan dan index.htmlmengajukan ke root situs Anda http://www.site.com/(index.html)untuk memiliki tautan /blog/dan apa pun yang Anda inginkan.

Secara khusus menjawab pertanyaan Anda dalam pernyataan singkat:

  1. Apakah ini praktik yang baik untuk memiliki file index.html di setiap subfolder atau apakah ini dimaksudkan hanya di folder root?

    Ya, karena itu mencegah orang melihat file apa yang ada di direktori Anda. Anda dapat mencegah ini dengan .htaccessfile yang berisiOptions -Indexes

  2. Apakah ada kelemahan atau masalah yang mungkin terjadi saat menggunakan metode "indeks di setiap folder" yang kedua?

    Tidak ada yang bisa saya pikirkan.

  3. Salah satu dari dua cara penataan situs web yang dijelaskan di atas yang Anda inginkan?

    Saya biasanya memiliki file index.htmlatau index.phpdi root, subfolder berdasarkan kategori (seperti forumatau newsatau logindll) dan kemudian semacam indeks di dalam masing-masing.

ionFish
sumber
Terima kasih atas jawaban komprehensifnya! Akses publik ke folder saya dan fakta bahwa mereka diindeks oleh google, membuat saya cukup marah jadi sekarang ketika saya tahu bahwa tidak ada masalah dengan trik "indeks di setiap folder", saya akan mengubah situs web saya dengan cara ini. Saya hanya berharap bahwa trik rel = "canonical" akan bekerja dan semua indeks itu tidak akan muncul di pencarian google ...: D
Jeyekomon
6

Istilah teknis untuk index.html adalah Indeks Direktori untuk Apache dan Dokumen Default untuk IIS. Arahan Apache lain yang menarik adalah arahan Opsi . Seperti yang ditunjukkan dalam dokumentasi, kapan Options Indexesdiatur:

Jika URL yang memetakan ke direktori diminta, dan tidak ada DirectoryIndex (misalnya, index.html) di direktori itu, maka mod_autoindex akan mengembalikan daftar direktori yang diformat.

Ketika saya menyiapkan situs web yang tidak menggunakan sistem manajemen konten, pengaturan pilihan saya adalah memiliki satu halaman konten per direktori. Halaman itu adalah indeks direktori (dokumen default) untuk direktori. Semua tautan di situs hanya tautan ke direktori dan diakhiri dengan garis miring (misalnya, http://example.com/blog/alih- alih http://example.com/blog/index.htmlatau ./blog/bukan ./blog/index.html). Trash slash penting untuk menghindari apa yang biasanya disebut sebagai pengalihan sopan santun . (Jika trailing slash dihilangkan, semuanya masih beres dengan benar, tetapi jumlah permintaan HTTP dan karenanya bandwidth bertambah.)

Motivasi utama saya untuk metodologi di atas ada dua. Pertama, ini memfasilitasi pengalihan teknologi yang digunakan di situs web. Misalnya, saya dapat mengubah halaman dari index.html ke index.php tanpa memutus tautan atau daftar mesin pencari. Kedua, ekstensi file halaman konten adalah "noise"; menghapus ekstensi file dari hasil URL dalam URL yang lebih pendek dan mudah-mudahan lebih mudah dibaca.

Adapun jenis file lainnya:

  • Semua file CSS berada di direktori css di root situs web.
  • Semua file gambar berada di direktori gambar atau subdirektori di root situs web.
  • Semua file JavaScript berada di direktori skrip di root situs web.
  • Semua flash dan file film lainnya berada di direktori video atau subdirektori di root situs web.

Di server Apache, saya menonaktifkan Options Indexesdirektori yang disebutkan di atas. Pada server Apache dan IIS, saya tidak menentukan indeks direktori (dokumen default) untuk direktori yang disebutkan di atas. Dengan demikian, permintaan untuk setiap direktori menghasilkan kesalahan HTTP 403.

Ryan Prechel
sumber
Karena batasan dua tautan, saya tidak dapat menyertakan tautan ke Indeks Direktori dan Dokumen Default dalam jawaban saya, jadi inilah mereka.
Ryan Prechel