2010-10-25 26 views
6

Trong một now migrated question về URL con người có thể đọc được tôi cho phép bản thân mình để xây dựng một chút sở thích ngựa của tôi:URL có thể đọc được của con người: tốt nhất là phân cấp?

Khi tôi gặp các URL như http://www.example.com/product/123/subpage/456.html Tôi luôn luôn nghĩ rằng đây là một nỗ lực vào việc tạo ra các URL theo cấp bậc có ý nghĩa đó, tuy nhiên, không hoàn toàn phân cấp. Ý của tôi là, bạn sẽ có thể cắt giảm một cấp tại một thời điểm. Ở phía trên, URL có hai hành vi vi phạm về nguyên tắc này:

  1. /product/123một mẩu thông tin biểu diễn như hai cấp độ. Nó sẽ được trình bày một cách chính xác hơn là /product:123 (hoặc bất kỳ dấu phân cách bạn thích)
  2. /subpage rất có khả năng không phải là một thực thể tự nó (ví dụ, bạn không thể đi lên mức một từ 456.html như http://www.example.com/product/123/subpage là "không có gì").

Vì vậy, tôi tìm ra sau đúng hơn:

http://www.example.com/product:123/456.html 

Ở đây, bạn luôn có thể di chuyển lên một cấp tại một thời điểm:

  • http://www.example.com/product:123/456.html — Các trang con
  • http://www.example.com/product:123 — Trang sản phẩm
  • http://www.example.com/ — Gốc

Tiếp theo cùng một triết lý, những điều sau đây sẽ có ý nghĩa [và cung cấp một liên kết bổ sung vào danh sách các sản phẩm]:

http://www.example.com/products/123/456.html 

đâu:

  • http://www.example.com/products/123/456.html — Trang con
  • http://www.example.com/products/123 — Các trang sản phẩm
  • http://www.example.com/products — Danh mục sản phẩm
  • http://www.example.com/ — Gốc

động lực chính khiến tôi phương pháp này là nếu mỗi "con đường yếu tố" (giới hạn bởi /) là selfcontained , bạn sẽ luôn có thể điều hướng đến "cha mẹ" bằng cách xóa phần tử cuối cùng của URL. Đây là những gì tôi (đôi khi) làm trong trình thám hiểm tệp của tôi khi tôi muốn đi đến thư mục mẹ. Theo cùng một dòng logic, người dùng (hoặc công cụ tìm kiếm/trình thu thập thông tin) có thể làm tương tự. Khá thông minh, tôi nghĩ vậy.

Mặt khác (và điều này là bit quan trọng của câu hỏi): Trong khi tôi không bao giờ có thể ngăn chặn điều đó một người dùng cố gắng truy cập một URL bản thân ông đã cụt, là tôi sai lầm khẳng định (và tôn vinh) mà một công cụ tìm kiếm có thể làm như vậy? I.e., là hợp lý để mong đợi rằng không có công cụ tìm kiếm (hoặc thực sự: Google) sẽ cố truy cập http://www.example.com/product/123/subpage (điểm 2 ở trên)? (Hay tôi thực sự chỉ tính đến yếu tố con người vào đây?)

Đây không phải là câu hỏi về sở thích cá nhân. Đó là câu hỏi công nghệ về những gì tôi có thể mong đợi của một trình thu thập thông tin/indexer và những gì mở rộng tôi nên dùng thao tác URL không phải con người vào tài khoản khi thiết kế URL.

Ngoài ra, cấu trúc "chiều sâu" của http://www.example.com/product/123/subpage/456.html là 4, trong đó http://www.example.com/products/123/456.html chỉ là 3. Tin đồn rằng độ sâu này ảnh hưởng đến xếp hạng công cụ tìm kiếm. Ít nhất, vì vậy tôi đã nói. (Bây giờ hiển nhiên rằng SEO là không phải là những gì tôi biết nhiều nhất.) Đây có phải là (vẫn đúng): độ sâu phân cấp (số lượng thư mục) có ảnh hưởng đến xếp hạng tìm kiếm không?

Vì vậy, là "linh cảm" của tôi về mặt kỹ thuật hay tôi nên dành thời gian cho một thứ gì đó khác?


Ví dụ: Làm nó (hầu như) ngay
Tốt ol' SO bị này gần như ngay. Trường hợp tại điểm: cấu hình, ví dụ như, http://stackoverflow.com/users/52162:

  • http://stackoverflow.com/users/52162 — Độc hồ sơ
  • http://stackoverflow.com/users — Danh sách người dùng
  • http://stackoverflow.com/ — gốc

Tuy nhiên, canonical URL cho cấu hình thực sự là http://stackoverflow.com/users/52162/jensgram mà dường như dư thừa (cùng một điểm kết thúc đại diện cho hai cấp độ phân cấp). Thay thế: http://stackoverflow.com/users/52162-jensgram (hoặc bất kỳ dấu phân cách nào khác được sử dụng nhất quán).


1) Mang một mảnh hoàn chỉnh các thông tin không phụ thuộc vào yếu tố "sâu hơn".

+1

Và việc theo dõi câu hỏi được di chuyển của bạn là chủ đề ở đây vì câu hỏi có chứa câu hỏi lập trình ...? –

+0

@Pascal Cuoq Không, không nhất thiết (và đó không phải là câu hỏi của tôi, chỉ là "câu trả lời" của tôi). Có lẽ điều này cũng nên được chuyển sang "Pro Webmasters" nhưng tôi không biết câu hỏi đó có được trả lời hay nhất bởi "lập trình viên chuyên nghiệp và người đam mê" hay "người quản trị web chuyên nghiệp và đam mê". – jensgram

+1

Tôi không đồng ý rằng "sản phẩm/123" chỉ là một phần thông tin; trạng thái mức đầu tiên "là loại sản phẩm" và trạng thái thứ hai "có id 123". – FacticiusVir

Trả lời

4

Các url phân cấp thuộc loại này "http://www.example.com/product:123/456.html" là vô ích dưới dạng "http://www.example.com/product/123/subpage", bởi vì khi người dùng thấy các url của bạn, họ không quan tâm đến số nhận dạng từ cơ sở dữ liệu của bạn, họ muốn các đường dẫn có ý nghĩa. Đây là lý do tại sao StackOverflow đặt tiêu đề câu hỏi vào url: "http://stackoverflow.com/questions/4017365/human-readable-urls-preferably-hierarchical-too".

Google khuyên bạn nên thực hành thay thế các truy vấn thông thường như "http://www.example.com/?product=123 & page = 456", bởi vì mỗi khi trang web phát triển chương trình riêng, trình thu thập thông tin không biết điều gì một phần có nghĩa là, nếu nó quan trọng hay không. Google đã phát minh ra các cơ chế phức tạp để tìm các đối số quan trọng và bỏ qua không quan trọng, có nghĩa là bạn sẽ nhận được nhiều trang hơn vào chỉ mục và sẽ có ít bản sao hơn. Nhưng các thuật toán này thường thất bại khi các nhà phát triển web phát minh ra kế hoạch của riêng họ.

Nếu bạn quan tâm đến cả người dùng và crawlers bạn nên sử dụng các url như thay vì điều này:

Ngoài ra, công cụ tìm kiếm cung cấp xếp hạng cao hơn cho các trang có từ khóa trong url.

+0

Có, tôi đồng ý với bạn về tính vô dụng của ID trong URL. Nhưng liên quan đến URL của câu hỏi này (để làm theo ví dụ của bạn): là 'http: // stackoverflow.com/questions/4017365/human-readable-urls-preferably-hierarchical-too' bị phạt so với (thay thế) hư cấu' http : // stackoverflow.com/questions/4017365-human-readable-urls-preferably-hierarchical-too' (một cấp cao hơn)? (Phần thứ hai của câu hỏi của tôi.) – jensgram

+1

@jensgram Tôi nghiêm túc nghi ngờ các công cụ tìm kiếm "phạt" mọi URL cho các cấp bổ sung. Ngay cả khi có sự khác biệt, bạn sẽ không nhận thấy nó. Việc thêm từ khóa vào URL sẽ quan trọng gấp hàng trăm lần so với số ký tự dấu gạch chéo xung quanh nó. :) Nó chỉ là một nhân vật. Giờ đây, URL "có thể đọc được con người" (với ID không đọc được) đang trở nên phổ biến, nhân vật này có thể có nghĩa là hầu như bất cứ điều gì. – Athari

Các vấn đề liên quan