Nhiều lần tôi thấy rằng phần mở rộng URL được ẩn (ví dụ .html
, .php
), nhưng không phải tất cả các trang web làm điều này.
Tại sao quản trị web ẩn phần mở rộng? Là để bảo mật, cho URL trông sạch hơn, hoặc cho một số mục đích khác?
Nhiều lần tôi thấy rằng phần mở rộng URL được ẩn (ví dụ .html
, .php
), nhưng không phải tất cả các trang web làm điều này.
Tại sao quản trị web ẩn phần mở rộng? Là để bảo mật, cho URL trông sạch hơn, hoặc cho một số mục đích khác?
Câu trả lời:
Có một số lý do để xóa tiện ích mở rộng khỏi URL:
Hãy nhớ rằng nhiều trang web được tạo bởi hệ thống quản lý nội dung (CMS) sẽ khiến các URL trông như thế này : /index.php?page=this-is-the-widget-page
. Điều đó đặc biệt xấu xí và có nhiều hành trình hơn là chỉ là một phần mở rộng. Viết lại để loại bỏ index.php?page=
làm cho nó tốt hơn nhiều.
Phần mở rộng không cần thiết trên web vì máy chủ gửi loại tài liệu dưới dạng tiêu đề. Các trang web được phục vụ như text/html
, hình ảnh như image/png
hoặc image/jpeg
. Điều này cho phép các trình duyệt biết cách hiển thị nội dung mà không cần sử dụng tiện ích mở rộng để tìm ra rằng URL chứa văn bản, HTML, PDF hoặc hình ảnh (để biết thêm thông tin, hãy xem bài viết về loại phương tiện Internet của Wikipedia ).
Một số quản trị web chọn sử dụng tiện ích mở rộng trên URL phù hợp với loại nội dung này. Vì vậy, bất kỳ text/html
tài liệu nào cũng sẽ có .html
phần mở rộng và bất kỳ image/png
tài liệu nào cũng sẽ có .png
phần mở rộng. Điều đó có thể giúp đỡ khi các URL được lưu vào hệ thống tệp nơi dữ liệu meta về loại nội dung của chúng bị mất. Trong hầu hết các hệ thống tệp, chương trình mở tệp được chọn bởi tiện ích mở rộng. Vì vậy, ngay cả khi một trang được PHP phục vụ, một số quản trị web sẽ xóa .php
phần mở rộng và một số thay thế nó bằng .html
.
Ngoài ra còn có câu hỏi là liệu URL có thể kết thúc tốt hơn trong dấu gạch chéo ( /
) hay không khi chúng không có phần mở rộng có nhiều thảo luận về Stack Overflow.
Tất cả các máy chủ web có một hoặc nhiều "tệp mặc định". Đó là tệp sẽ được hiển thị bất cứ khi nào khách truy cập truy cập vào một URL kết thúc bằng dấu gạch chéo /
, tức là một thư mục.
Nếu tên tệp mặc định trên máy chủ web của bạn index.php
và khách truy cập truy cập www.example.com/pagename/
, họ thực sự đang truy cập www.example.com/pagename/index.php
.
Nếu không có dấu vết /
, máy chủ web có thể chỉ cần viết lại URL để xóa URL, vì nó không cần thiết. Trang web này, trên thực tế, làm điều đó.
Đây là loại lược đồ URI mát mẻ mà tôi nhắm đến trên trang web cá nhân của riêng tôi.
(! Và có lẽ nhiều hơn nữa nhà thiết kế web / phát triển quá) Cá nhân, lý do mà tôi bắt đầu làm như vậy là sau khi đọc bài báo “URI mát không thay đổi” - tài liệu này được viết bởi cha đẻ của World Wide Web, Tim Berners -Lee.
Trong bài viết nổi tiếng của Tim Berners-Lee, về cơ bản, ông đã nêu ra những lý do tương tự mà Stephen Ostermiller có trong câu trả lời tuyệt vời cho câu hỏi này .
Để đưa ra câu trả lời cụ thể hơn cho câu hỏi chính của bạn, tại sao các tiện ích mở rộng bị ẩn trong URL?, Vâng, tôi sẽ nói rằng những lý do chính đối với tôi là:
1. Để chứng minh URI trong tương lai:
Ví dụ, tại thời điểm đó, nó có vẻ như là một ý tưởng tốt để sử dụng URI như:
http://www.example.com/page.pl
trong đó việc tăng .pl
cường tập tin cho tập lệnh Perl. Tuy nhiên, hầu hết các nhà phát triển web sử dụng ASP.NET hoặc PHP cho kịch bản phụ trợ, vì vậy , ngày nay ,
http://www.example.com/page.php
nghe có vẻ là một ý tưởng tốt hơn, cuối cùng PHP và ASP / ASP.net sẽ trở nên lỗi thời. Vì vậy, một ý tưởng tốt hơn là chỉ cần loại bỏ phần mở rộng hoàn toàn.
2. Khả năng đọc và ghi nhớ:
Sẽ dễ dàng hơn nhiều khi một URI mát mẻ của URI được truyền cho mọi người bằng lời nói, trên giấy (ví dụ: quảng cáo, danh thiếp, v.v.), chưa kể dễ nhớ hơn.
3. Hack Hackable *
Mặc dù tôi nói rằng đại đa số người dùng ngày nay có thể đi qua một công cụ tìm kiếm cho tất cả mọi thứ - tôi thậm chí đã thấy những người sẽ vào thanh địa chỉ và gõ www.google.com
, sau đó sử dụng Google để nhập theo nghĩa đen www.ebay.com
! Nhưng, tôi nghĩ rằng nếu tôi có một trang web dựa trên đa phương tiện, URI http://www.example.com/video
gợi ý rằng phần âm nhạc có thể được tìm thấy trong URI http://www.example.com/audio
, v.v. (Tôi vẫn sử dụng thanh địa chỉ để truy cập các trang web - Tôi khá là trường học cũ về điều đó!)
* (Ồ! Có thể Hack Hack ngay lập tức - từ đó có tồn tại không?! Chà, bây giờ thì có !) :-)
4. ** Thẩm mỹ: Để làm cho chúng trông đẹp hơn! (Đổ lỗi cho OCD của tôi!)
Tuy nhiên, tôi đã nhận thấy bằng cách đọc qua các trang web khác nhau liên quan đến SEO, rằng rất nhiều webmasers thực sự nối thêm phần mở rộng tệp vào URI động, ví dụ:
URI thực tế có thể là:
http://www.example.com/article
Tuy nhiên, quản trị trang web sẽ thực hiện viết lại để làm cho URI Giao diện trông tĩnh, chẳng hạn như:
http://www.example.com/article.html
Logic đằng sau điều này là về cơ bản, một công cụ tìm kiếm sẽ chỉ định thứ hạng cao hơn cho các trang tĩnh (rõ ràng là ít có khả năng thay đổi). (Mặc dù tôi không chính xác là một chuyên gia về SEO, nhưng cá nhân tôi không tự mình mua ý tưởng này - tôi đoán rằng với những suy nghĩ đằng sau thuật toán của Google và Bing, sẽ mất nhiều hơn một phần mở rộng tệp giả mạo con đường của bạn vào vị trí cực SERP!)
Để biết thêm thông tin về cách đặt tên URI, tôi khuyên bạn nên đọc các bài viết này:
Tim Berners-Lee:
Lời khuyên QA của W3C:
Brian Kelly (Tập trung vào Vương quốc Anh / UKOLN - Đại học Bath):
Hi vọng điêu nay co ich!
Tôi hoàn toàn đồng ý với tất cả các câu trả lời ở trên. Chỉ cần thêm rằng một trong những lý do tại sao các tiện ích mở rộng bị ẩn trong URL là để bảo mật. Nói một cách đơn giản, nếu bạn không để lộ tiện ích mở rộng trong URL, thật khó để tìm ra công nghệ mà ứng dụng đã được xây dựng. Vì vậy, giả sử một trang được tạo bằng PHP và phần mở rộng không bị ẩn, sau đó một hacker có thể tìm ra các lỗ hổng của PHP và sử dụng nó để thực thi một số hoạt động độc hại.
Bạn có ẩn các tiện ích mở rộng trang của mình hay không, mọi người vẫn có thể biết bạn đã sử dụng công nghệ nào. Bằng cách sử dụng cURL, không thể có được công nghệ của bạn bằng cách tìm nạp thông tin tiêu đề.
curl -I -L rembatvideo.ga
Sau đó, bạn sẽ thấy một cái gì đó như công nghệ của bạn, yêu cầu bộ đệm, kết nối và nhiều hơn nữa.
Hoàn toàn đồng ý theo giải thích của "Stephen Ostermiller" nhưng tôi muốn đề cập đến thủ thuật đằng sau đó để che giấu việc mở rộng URL. Và để làm điều đó, bạn phải sử dụng quy tắc viết lại .htaccess , đây là kịch bản giúp bạn giải quyết:
Chuyển hướng .php
yêu cầu bên ngoài sang URL mở rộng
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]