Cách sử dụng index.html đúng


9

Tôi có khá nhiều vấn đề tôi muốn nghe ý kiến ​​của bạn, vì vậy tôi hy vọng tôi sẽ giải thích nó đủ tốt. Tôi cũng nên lưu ý rằng tôi mới bắt đầu chỉ trang bị kiến ​​thức về HTML và CSS nên mặc dù tôi gần như chắc chắn rằng có một giải pháp đơn giản sử dụng PHP mạnh mẽ, nhưng nó sẽ không giúp tôi .

Hãy nói rằng tôi có blog cá nhân của tôi trên địa chỉ example.com/blog.htmlvà có các liên kết đến một số blog phụ example.com/blog/math.html, example.com/blog/coding.htmlv.v ... Vì vậy, thư mục gốc của tôi chứa blog.htmlblogthư mục, blogchính thư mục chứa các tệp math.htmlcoding.html.

Trước hết, tôi đã học được (từ Google Webmaster Tools ) rằng vì mục đích thẩm mỹ và SEO, nên thống nhất example.com.comexample.com/index.htmlbằng cách thêm _rel="canonical"_thuộc tính vào nguồn của index.html. Sử dụng một vài thủ thuật khác (như liên kết đến .././) tôi đã thoát khỏi sự xấu xí index.htmlxuất hiện trong các địa chỉ web của mình.

Và bây giờ tôi tự hỏi nếu thủ thuật này có thể được sử dụng không chỉ cho thư mục gốc mà còn cho bất kỳ thư mục nào? Ý tôi là, tôi sẽ chuyển tôi blog.htmlvào blogthư mục, đổi tên nó thành index.htmlvà thêm rel="canonical"vào để thống nhất example.com/blog/index.htmlvới example.com/blog/.
Thủ thuật này sẽ thay đổi địa chỉ blog của tôi từ example.com/blog.htmlthành example.com/blog/.

Chưa xong! Tôi cũng gặp vấn đề với robot google lập chỉ mục các thư mục của tôi. Vì vậy, khi tôi gõ site:example.com/vào tìm kiếm google, liên kết đến thư mục của tôi example.com/blog/với các tệp thô, biểu tượng, vv xuất hiện trong số các kết quả khác. Tôi đoán cũng có những cách khác để khắc phục nó, nhưng IMHO thay đổi được đề cập ở trên cũng thực hiện thủ thuật - index.html trong thư mục blog sẽ bảo vệ người dùng xem nội dung thô thực sự của thư mục đó, sẽ chỉ xuất hiện liên kết đúng example.com/blog/trong tìm kiếm google và (tôi hy vọng rằng) _rel="canonical"_sẽ làm cho liên kết không mong muốn thứ hai example.com/blog/index.htmlkhông xuất hiện trong kết quả tìm kiếm.

Vì vậy, câu hỏi của tôi là:

  1. Đây có phải là một cách thực hành tốt để có index.htmltệp trong mỗi thư mục con hay nó chỉ được dự định trong thư mục gốc?
  2. Có bất kỳ nhược điểm hoặc vấn đề nào có thể xảy ra khi sử dụng phương pháp " chỉ mục trong mọi thư mục " thứ hai không?
  3. Mà một trong hai cách cơ cấu trang web mô tả ở trên sẽ bạn thích?

Để làm rõ hơn, các công cụ tìm kiếm có thấy site.com/blogsite.com/blog/index.html là 2 tệp riêng biệt không? Nếu các liên kết với cả hai URL đang được sử dụng, có khả năng bạn đang chia quyền liên kết nước trái cây / trang giữa 2 vị trí không?

Theo như tôi biết, các công cụ tìm kiếm (ít nhất là Google) KHÔNG xem chúng là hai tệp riêng biệt. Bởi vì chúng thực sự có thể khác biệt - hai liên kết chỉ có thể khác nhau trong một dấu gạch chéo. (Đọc thêm tại đây .) Và có, nếu bạn đang sử dụng hai liên kết khác nhau đến một trang, toàn bộ thứ hạng của trang được phân chia giữa hai liên kết đó và trang của bạn thực sự mất một nửa thứ hạng. Đó là lý do tại sao tôi đề nghị chuẩn hóa liên kết được đề cập để ngăn chặn những rò rỉ đó.
Jeyekomon

Câu trả lời:


13

Lý do chúng tôi sử dụng index.htmlhoặc home.htmlhoặc derivitives của chúng, là do phần mềm máy chủ web riêng của mình thực sự tìm kiếm đó và phục vụ nó. Ví dụ:

Đây là INVALID: (thư mục www)

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

Điều này trong thực tế sẽ được phục vụ như một trang liệt kê các thư mục và tệp. (Không phải những gì bạn muốn). Bạn có thể thử cấu trúc này, nhưng cũng tạo một tệp index.html bên cạnh blog.html. Lưu ý cách nó sẽ không phục vụ blog.html trừ khi bạn chỉ định http://www.site.com/blog.html) Đây là lý do tại sao http://www.google.com/hiển thị trang mà không cần bạn phải chỉ địnhhttp://www.google.com/index.html

Đây là GIÁ TRỊ:

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

Điều này sẽ phục vụ blog.htmltập tin của bạn NHƯ HOMEPAGE. (Không liệt kê tất cả các thư mục / tệp trong thư mục đó)

Phần mềm máy chủ web có (trong cấu hình) một danh sách tên tệp chuyên biệt sẽ được dùng làm trang chủ hoặc trang chính của thư mục. (Theo kinh nghiệm của tôi, index.htmlđược ưu tiên hơn index.php, vì vậy nếu bạn có index.htmlindex.phptrong một thư mục, index.html là những gì công chúng sẽ thấy) Tất nhiên tất cả đều có thể thay đổi và thậm chí bạn có thể đặt blog.htmlthành được công nhận là "mục lục".

Phát biểu ý kiến ​​của bạn:

"Thủ thuật này sẽ thay đổi địa chỉ blog của tôi từ www.xxx.com/blog.html thành www.xxx.com/blog/."

Điều này sẽ được thực hiện bằng cách chuyển blog.htmlhoàn toàn vào /blog/và đổi tên nó thành index.html.

Cấu trúc mới của bạn sẽ là:

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

Điều này sẽ phục vụ chính xác http://www.site.com/blog/để hiển thị nội dung của blog.html mà chúng tôi đã đổi tên thành để index.htmlphần mềm có thể đặt nó làm chỉ mục của thư mục của bạn/blog/

Bây giờ bạn cũng có thể tự do đặt và index.htmlgửi vào thư mục gốc của trang web của bạn http://www.site.com/(index.html)để có liên kết đến /blog/và bất cứ điều gì bạn muốn.

Trả lời cụ thể câu hỏi của bạn trong các câu ngắn:

  1. Đây có phải là một cách thực hành tốt để có tệp index.html trong mỗi thư mục con hay nó chỉ được dự định trong thư mục gốc?

    Có, bởi vì nó ngăn mọi người nhìn thấy những tập tin trong thư mục của bạn. Bạn có thể ngăn chặn điều này với một .htaccesstập tin có chứaOptions -Indexes

  2. Có bất kỳ nhược điểm hoặc vấn đề nào có thể xảy ra khi sử dụng phương pháp "chỉ mục trong mọi thư mục" thứ hai không?

    Không ai mà tôi có thể nghĩ ra.

  3. Bạn thích cái nào trong hai cách cấu trúc trang web được mô tả ở trên?

    Tôi thường có một index.htmlhoặc index.phptập tin trong thư mục gốc, các thư mục con dựa trên danh mục (chẳng hạn như forumhoặc newshoặc loginvv) và sau đó một số loại chỉ mục bên trong mỗi thư mục.


Cảm ơn bạn đã trả lời toàn diện như vậy! Việc truy cập công khai vào các thư mục của tôi và việc chúng được google lập chỉ mục, khiến tôi khá tức giận vì vậy bây giờ khi tôi biết rằng không có vấn đề gì với thủ thuật "chỉ mục trong mỗi thư mục", tôi sẽ thay đổi trang web của mình theo cách này. Tôi chỉ hy vọng rằng thủ thuật rel = "canonical" sẽ hoạt động và tất cả các chỉ mục đó sẽ không xuất hiện trong tìm kiếm của google ...: D
Jeyekomon

6

Thuật ngữ kỹ thuật cho index.html là Chỉ mục thư mục cho Apache và Tài liệu mặc định cho IIS. Chỉ thị quan tâm khác của Apache là chỉ thị Tùy chọn . Như được chỉ ra trong tài liệu, khi Options Indexesđược đặt:

Nếu một URL ánh xạ tới một thư mục được yêu cầu và không có Directory Index (ví dụ: index.html) trong thư mục đó, thì mod_autoindex sẽ trả về một danh sách được định dạng của thư mục.

Khi tôi thiết lập một trang web không sử dụng hệ thống quản lý nội dung, thiết lập ưu tiên của tôi là có một trang nội dung cho mỗi thư mục. Trang đó là chỉ mục thư mục (tài liệu mặc định) cho thư mục. Tất cả các liên kết trên trang web chỉ liên kết đến thư mục và kết thúc bằng dấu gạch chéo (ví dụ: http://example.com/blog/thay vì http://example.com/blog/index.htmlhoặc ./blog/thay vì ./blog/index.html). Dấu gạch chéo là quan trọng để tránh những gì thường được gọi là chuyển hướng lịch sự . (Nếu dấu gạch chéo bị bỏ qua, mọi thứ vẫn giải quyết chính xác, nhưng số lượng yêu cầu HTTP và do đó băng thông tăng lên.)

Động lực chính của tôi cho phương pháp trên là gấp đôi. Đầu tiên, nó tạo điều kiện chuyển đổi công nghệ được sử dụng trên trang web. Ví dụ: tôi có thể thay đổi một trang từ index.html sang index.php mà không phá vỡ bất kỳ liên kết hoặc danh sách công cụ tìm kiếm nào. Thứ hai, phần mở rộng tập tin của một trang nội dung là "nhiễu"; xóa phần mở rộng tệp khỏi URL dẫn đến các URL ngắn hơn và hy vọng sẽ dễ đọc hơn.

Đối với các loại tệp khác:

  • Tất cả các tệp CSS nằm trong một thư mục css trong thư mục gốc của trang web.
  • Tất cả các tệp hình ảnh nằm trong một thư mục hình ảnh hoặc thư mục con của chúng trong thư mục gốc của trang web.
  • Tất cả các tệp JavaScript nằm trong một thư mục script trong thư mục gốc của trang web.
  • Tất cả các tập tin flash và phim khác nằm trong một thư mục video hoặc thư mục con của chúng trong thư mục gốc của trang web.

Trên máy chủ Apache, tôi vô hiệu hóa Options Indexescác thư mục đã nói ở trên. Trên cả máy chủ Apache và IIS, tôi không chỉ định một chỉ mục thư mục (tài liệu mặc định) cho các thư mục đã nói ở trên. Do đó, yêu cầu cho bất kỳ thư mục nào cũng dẫn đến lỗi HTTP 403.


Do hạn chế hai liên kết, tôi không thể bao gồm các liên kết đến Chỉ mục thư mụcTài liệu mặc định trong câu trả lời của mình, vì vậy chúng ở đây.
Ryan Prechel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.