it-swarm-vi.com

Khi nào tôi nên sử dụng dấu gạch chéo trong URL của mình?

Khi nào nên sử dụng dấu gạch chéo trong URL? Ví dụ: URL của tôi sẽ giống như /about-us/ hoặc giống như /about-us?

Tôi hoàn toàn nhận thức được các vấn đề liên quan đến SEO - nội dung trùng lặp và điều kinh điển; Tôi đang cố gắng tìm ra cái nào tôi nên sử dụng trong bối cảnh phục vụ các trang chính xác một mình.

Ví dụ, đồng nghiệp của tôi đang nghĩ rằng dấu gạch chéo ở cuối có nghĩa là "thư mục" - "thư mục", vì vậy đây không phải là một kiểu chính xác. Nhưng tôi nghĩ rằng cuối cùng không có dấu gạch chéo - nó cũng không hoàn toàn chính xác, bởi vì nó gần giống như một thư mục, nhưng nó cũng không phải là một tệp bình thường, mà là một tên tệp không có phần mở rộng.

Có một cách thích hợp để biết nên sử dụng?

252
Denis

Theo ý kiến ​​cá nhân của tôi dấu gạch chéo được sử dụng sai.

Về cơ bản, định dạng URL đến từ cùng một định dạng tệp và thư mục UNIX, sau này, trên các hệ thống DOS và cuối cùng, được điều chỉnh cho web.

Một URL điển hình cho cuốn sách này trên hệ điều hành giống Unix sẽ là đường dẫn tệp như tệp: ///home/username/RomeoAndJuliet.pdf, xác định sách điện tử được lưu trong tệp trên đĩa cứng cục bộ.

Nguồn: Wikipedia: Mã định danh tài nguyên thống nhất

Một nguồn tốt khác để đọc: Wikipedia: URI Scheme

Theo RFC 1738, đã xác định URL vào năm 1994, khi tài nguyên chứa tham chiếu đến các tài nguyên khác, họ có thể sử dụng các liên kết tương đối để xác định vị trí của tài nguyên thứ hai như muốn nói, "ở cùng một nơi với tài nguyên này ngoại trừ tương đối sau con đường". Người ta đã nói rằng các URL tương đối như vậy phụ thuộc vào URL ban đầu có chứa cấu trúc phân cấp dựa trên liên kết tương đối dựa trên đó và các lược đồ URL của tệp ftp, http và tệp là ví dụ về một số có thể được coi là phân cấp, với các thành phần của hệ thống phân cấp được phân tách bằng "/".

Nguồn: Trình định vị tài nguyên thống nhất Wikipedia (URL)

Cũng thế:

Đó là câu hỏi chúng ta thường nghe. Hướng tới câu trả lời! Về mặt lịch sử, nó phổ biến cho các URL có dấu gạch chéo để chỉ ra một thư mục và những URL không có dấu gạch chéo để biểu thị một tệp:

http://example.com/foo/ (với dấu gạch chéo, theo quy ước là một thư mục)

http://example.com/foo (không có dấu gạch chéo, theo quy ước là một tệp)

Nguồn: Blog trung tâm của Google WebMaster - Chém hay không chém

Cuối cùng:

  1. Một dấu gạch chéo ở cuối URL làm cho địa chỉ trông "đẹp".

  2. Một URL không có dấu gạch chéo ở cuối và không có phần mở rộng trông hơi "lạ".

  3. Bạn sẽ không bao giờ đặt tên tệp CSS của mình (ví dụ) http://www.sample.com/stylesheet/ bạn nhé?

NHƯNG tôi là người đề xuất các thực tiễn tốt nhất về web bất kể môi trường. Nó có thể rất khó khăn và không rõ ràng, giống như bạn đã nói về URL không có phần mở rộng.

125
Dementic

Nó không phải là một câu hỏi về sở thích. /base/base/ có ngữ nghĩa khác nhau. Trong nhiều trường hợp, sự khác biệt là không quan trọng. Nhưng nó rất quan trọng khi có URL tương đối.

  • child liên quan đến /base//base/child.
  • child liên quan đến /base là (có lẽ đáng ngạc nhiên) /child.
147
Raedwald

Tôi luôn ngạc nhiên về việc sử dụng rộng rãi các dấu gạch chéo trên các URL không có thư mục (WordPress trong số những người khác). Điều này thực sự không nên là một trong hai hoặc tranh luận bởi vì đặt dấu gạch chéo sau một tài nguyên là sai về mặt ngữ nghĩa. Web được thiết kế để phân phối các tài nguyên có thể định địa chỉ và các địa chỉ đó - URL - được thiết kế để mô phỏng hệ thống phân cấp hệ thống tệp theo kiểu * nix. Trong bối cảnh đó:

  • Dấu gạch chéo luôn biểu thị thư mục, không bao giờ tập tin.
  • Các tệp có thể được đặt tên bất cứ thứ gì (có hoặc không có phần mở rộng), nhưng không thể chứa hoặc kết thúc bằng dấu gạch chéo.

Sử dụng các hướng dẫn này, thật sai lầm khi đặt dấu gạch chéo sau tài nguyên không có thư mục.

57
Yarin

Đó thực sự không phải là một câu hỏi về thẩm mỹ, nhưng thực sự là một sự khác biệt kỹ thuật. Các thư mục suy nghĩ của nó là hoàn toàn chính xác và khá nhiều giải thích mọi thứ. Hãy làm việc ở môi trường bên ngoaì:

Bây giờ bạn đã trở lại thời kỳ đồ đá hoặc chỉ phục vụ các trang tĩnh

Bạn có cấu trúc thư mục cố định trên máy chủ web của mình và chỉ các tệp tĩnh như hình ảnh, html, v.v. - không có tập lệnh phía máy chủ hay bất cứ điều gì.

Một trình duyệt yêu cầu /index.htm, nó tồn tại và được gửi đến máy khách. Sau này bạn có rất nhiều - giả sử - phim DVD được xem xét và một trang html cho mỗi phim trong thư mục /dvd/. Bây giờ ai đó yêu cầu /dvd/adams_apples.htm và nó được gửi vì nó ở đó.

Vào một ngày nào đó, ai đó chỉ yêu cầu /dvd/ - là thư mục và máy chủ đang cố gắng tìm ra những gì sẽ cung cấp. Bên cạnh các hạn chế truy cập, v.v., có hai khả năng: Hiển thị cho người dùng nội dung thư mục (Tôi cá là bạn đã thấy cái này ở đâu đó) hoặc hiển thị một tệp mặc định (trong Apache là: DirectoryIndex: sets the file that Apache will serve if a directory is requested.)

Cho đến nay rất tốt, đây là trường hợp được mong đợi. Nó đã cho thấy sự khác biệt trong xử lý, vì vậy hãy tham gia vào nó:

Vào lúc 5:34 sáng, bạn đã mắc lỗi khi tải lên các tệp của mình

(Điều này hoàn toàn dễ hiểu.) Vì vậy, bạn đã làm điều gì đó hoàn toàn sai và thay vì tải lên /dvd/the_big_lebowski.htm bạn đã tải tệp đó thành dvd (không có tiện ích mở rộng) thành /.

Ai đó đã đánh dấu danh sách thư mục /dvd/ của bạn (tất nhiên bạn không muốn tạo và luôn cập nhật index.htm tiện lợi đó) và đang truy cập trang web của bạn. Nội dung thư mục được gửi - tất cả đều ổn.

Ai đó đã nghe danh sách của bạn và đang gõ /dvd. Và bây giờ nó là vít. Thay vì thư mục DVD của bạn liệt kê, máy chủ tìm thấy một tệp có tên đó và đang phân phối tệp Big Lebowski của bạn.

Vì vậy, bạn xóa tập tin đó và nói với anh chàng tải lại trang. Máy chủ của bạn tìm tệp /dvd, nhưng nó đã biến mất. Hầu hết các máy chủ sau đó sẽ nhận thấy rằng có một thư mục có tên đó và nói với khách hàng rằng những gì nó đang tìm kiếm thực sự ở một nơi khác. Câu trả lời rất có thể sẽ là:

Status Code:301 Moved Permanently với Location: http://[...]/dvd/

Vì vậy, hoàn toàn bỏ qua những gì bạn nghĩ về thư mục hoặc tệp, máy chủ chỉ có thể xử lý những thứ đó và - trừ khi được nói khác nhau - quyết định cho bạn về ý nghĩa của "Chém hay không".

Cuối cùng sau khi nhận được phản hồi này, khách hàng tải /dvd/ và mọi thứ đều ổn.

Có ổn không Không.

"Tốt thôi" không đủ tốt cho bạn

Bạn có một số trang động nơi mọi thứ được chuyển đến /index.php và được xử lý. Mọi thứ hoạt động khá tốt cho đến bây giờ, nhưng toàn bộ điều đó bắt đầu cảm thấy chậm hơn và bạn điều tra.

Chẳng mấy chốc, bạn sẽ nhận thấy rằng /dvd/list đang hoạt động giống hệt nhau: Chuyển hướng đến /dvd/list/ sau đó được dịch nội bộ sang index.php?controller=dvd&action=list. Một yêu cầu bổ sung - nhưng thậm chí còn tồi tệ hơn! customer/login chuyển hướng đến customer/login/, lần lượt chuyển hướng đến URL HTTPS của customer/login/. Cuối cùng, bạn có tấn các chuyển hướng HTTP không cần thiết (= yêu cầu bổ sung) khiến trải nghiệm người dùng chậm hơn.

Nhiều khả năng bạn cũng có một chỉ mục thư mục mặc định ở đây: index.php?controller=dvd không có action chỉ đơn giản là tải nội bộ index.php?controller=dvd&action=list.

Tóm lược:

  • Nếu kết thúc bằng /, nó có thể không bao giờ là một tệp. Không cần đoán máy chủ.

  • Chém hoặc không gạch chéo là những ý nghĩa hoàn toàn khác nhau. Có sự khác biệt về kỹ thuật/tài nguyên giữa "dấu gạch chéo hoặc không dấu gạch chéo", và bạn nên biết về nó và sử dụng nó cho phù hợp. Chỉ vì máy chủ rất có thể tải /dvd/index.htm - hoặc tải nội dung tập lệnh chính xác - khi bạn nói /dvd: Nó thực hiện nhưng không phải vì bạn đã yêu cầu đúng. Mà sẽ là /dvd/.

  • Bỏ dấu gạch chéo ngay cả khi bạn thực sự có nghĩa là phiên bản bị chém cung cấp cho bạn hình phạt yêu cầu HTTP bổ sung. Điều này luôn xấu (nghĩ về độ trễ di động) và có trọng lượng lớn hơn một "URL đẹp" - đặc biệt là vì các trình thu thập thông tin không ngu ngốc như SEO tin hoặc muốn bạn tin;)

24
nico gawenda

Khi bạn tạo URL /about-us/ (với dấu gạch chéo), thật dễ dàng để bắt đầu với một tệp duy nhất index.html và sau đó mở rộng nó và thêm nhiều tệp hơn (ví dụ our-CEO-john-doe.jpg) hoặc thậm chí xây dựng hệ thống phân cấp theo nó (ví dụ: /about-us/company/, /about-us/products/, v.v. ) khi cần, không thay đổi URL đã xuất bản. Điều này cung cấp cho bạn một sự linh hoạt tuyệt vời.

18
musiphil

Các câu trả lời khác ở đây dường như ủng hộ việc bỏ qua dấu gạch chéo. Có một trường hợp trong đó một dấu gạch chéo sẽ giúp tối ưu hóa công cụ tìm kiếm (SEO). Đó là trường hợp tài liệu của bạn có phần mở rộng tệp không phải là .html. Điều này trở thành một vấn đề với các trang web được xếp hạng trang web. Họ có thể chọn giữa hai url này:

  • http://mysite.example.com/rated.example.com
  • http://mysite.example.com/rated.example.com/

Trong trường hợp như vậy, tôi sẽ chọn một dấu với dấu gạch chéo. Đó là bởi vì phần mở rộng .com là một phần mở rộng cho các tệp lệnh thực thi của Windows. Các công cụ tìm kiếm và trình kiểm tra vi rút thường không thích các URL có vẻ như có thể chứa phần mềm độc hại được phân phối thông qua các cơ chế như vậy. Dấu gạch chéo dường như làm giảm bớt bất kỳ mối lo ngại nào, cho phép trang xếp hạng trong các công cụ tìm kiếm và có được bởi trình kiểm tra vi rút.

Nếu URL của bạn không có . trong phần tệp, thì tôi khuyên bạn nên bỏ qua dấu gạch chéo để đơn giản.

10
Stephen Ostermiller

Ai nói tên tập tin cần gia hạn ?? thỉnh thoảng hãy xem trên máy * nix ...
[.__.] Tôi đồng ý với bạn của bạn, không có dấu gạch chéo.

9
Aaron Gage

Từ góc độ SEO, việc chọn có bao gồm dấu gạch chéo ở cuối URL hay không là không liên quan. Ngày nay, người ta thường thấy các ví dụ của cả hai trên web. Một trang web sẽ không bị phạt theo bất kỳ cách nào, cũng như sự lựa chọn này sẽ ảnh hưởng đến xếp hạng công cụ tìm kiếm trang web của bạn hoặc các cân nhắc SEO khác.

Chỉ cần chọn quy ước đặt tên URL mà bạn thích và bao gồm thẻ meta chuẩn trong phần <head> của mỗi trang web.

Các công cụ tìm kiếm có thể coi một trang web là hai URL trùng lặp riêng biệt khi chúng gặp phải và không có dấu gạch chéo, tức là example.com/about-us/example.com/about-us.

Cách tốt nhất là bao gồm thẻ meta chuẩn trên mỗi trang vì bạn không thể kiểm soát cách các trang web khác liên kết với URL của mình.

Thẻ canonical trông như thế này: <link rel="canonical" href="https://example.com/about-us" />. Sử dụng thẻ meta chuẩn sẽ đảm bảo rằng các công cụ tìm kiếm chỉ đếm từng URL của bạn một lần, bất kể các trang web khác có bao gồm dấu gạch chéo khi chúng liên kết đến trang web của bạn hay không.

2
riot