Khái niệm cơ bản về .htaccess: Cách sử dụng & ví dụ

Bài viết được viết bởi:
  • Hướng dẫn lưu trữ
  • Cập nhật: Tháng bảy 29, 2019

Tệp .htaccess là gì?

Tệp .htaccess là một Apache HTTP Server (thường chỉ gọi là tệp cấu hình Apache). Tệp cực kỳ mạnh mẽ và có thể được sử dụng để giúp kiểm soát nhiều khía cạnh của các trang web được cung cấp bởi Apache. Điều này bao gồm những thứ như quản lý chuyển hướng, bảo vệ hotlink và hơn thế nữa.

Tập tin .htaccess ở đâu?

Cần có một tệp .htaccess trong thư mục gốc của máy chủ web của bạn - thư mục (thường là / public_html hoặc / www) chứa nội dung của trang web của bạn.

Bạn có thể có nhiều tệp .htaccess trên tài khoản lưu trữ của mình, nhưng mỗi thư mục hoặc thư mục chỉ có thể có một. Ví dụ: bạn có thể có các tệp .htaccess riêng trong thư mục gốc và một tệp khác trong thư mục con. Điều này cho phép bạn thiết lập hành vi máy chủ khác nhau dựa trên cấu trúc thư mục.

Tệp .htaccess rất mạnh nhưng có thể được truy cập và sửa đổi nếu không được bảo vệ chính xác. Đảm bảo rằng bạn thực hiện các bước để ngăn truy cập vào tệp này.

Tôi không thể tìm thấy tệp .htaccess của mình

Trước hết .htaccess là một tệp Apache, điều này có nghĩa là bạn chỉ có thể tìm thấy nó trong máy chủ Apache. * Dừng tìm kiếm nếu máy chủ của bạn đang chạy trên một phần mềm máy chủ web khác (ví dụ: Microsoft IIS hoặc NGINX).

Tên tệp bắt đầu bằng dấu chấm thường ẩn các tệp. Điều này có nghĩa là chúng thường không hiển thị theo mặc định.

Để xem tệp này, chỉ cần bật Hiển thị các tệp ẩn ẩn trong ứng dụng khách FTP hoặc Trình quản lý tệp lưu trữ của bạn (xem hình ảnh bên dưới).

Tìm tệp .htaccess - Cách hiển thị các tệp ẩn trong trình quản lý tệp cPanel
Ví dụ - Hiển thị các tệp ẩn của bạn bằng cách bật tùy chọn này trong Trình quản lý tệp cPanel.

Bạn có thể cảm thấy rằng tệp .htaccess là một sự bất tiện vì nó yêu cầu mã hóa nhưng hãy xem xét người dùng cần thiết lập cùng một hành vi máy chủ trên nhiều trang web. Tất cả những gì người đó cần làm là sao chép tệp .htaccess.

Các tệp .htaccess là các tệp cấu hình máy chủ và vì chúng giải quyết trực tiếp hành vi, nên không cần phải chạy cái gì đó mỗi khi yêu cầu được đưa ra. Do đó, nó ít tốn nhiều tài nguyên hơn khi sử dụng một plugin, ví dụ.

* Lưu ý: Apache có khoảng 30% chiếm thị trường dựa trên báo cáo của W3Techs. Hầu hết các thương hiệu lưu trữ phổ biến được đề cập tại WHSR - A2 Hosting, BlueHost, GreenGeeks, Hostinger, InMotion Hosting, Siteground; được cung cấp bởi Apache.

.Htaccess dùng để làm gì?

Mặc dù có một dấu chấm ở phía trước tên tệp, htaccess là tên của tệp và dấu chấm không làm cho nó trở thành một phần mở rộng. Cụ thể, đây là tên tệp chính xác mà Apache tìm kiếm khi nó được chạy. Bất cứ điều gì bên trong tệp .htaccess đều đặt tham số cho Apache để bật hoặc tắt các chức năng hoặc thậm chí thực thi các tác vụ cụ thể khi đáp ứng một số điều kiện nhất định.

Ví dụ, dựa trên các hướng dẫn có trong tệp, Apache có thể tự động tải các trang lỗi tùy chỉnh nếu khách truy cập trang web của bạn đang tìm kiếm tài nguyên không có ở đó. Mỗi loại lỗi có mã riêng và mỗi loại có thể được chuyển hướng riêng.

Có một danh sách rất lớn những gì có thể được thực hiện bằng cách sử dụng tệp .htaccess và hôm nay tôi sẽ chia sẻ một số trong số này với bạn.

KHAI THÁC. Quản lý trang lỗi tùy chỉnh

Chú thích: Ví dụ về một số trang Lỗi 404 được tùy chỉnh sáng tạo

Khi để ở cài đặt mặc định, hầu hết các phần mềm máy chủ web sẽ gửi một trang lỗi trông rất ảm đạm cho khách truy cập của bạn. Nếu bạn muốn hiển thị trang lỗi thân thiện hơn với người dùng (hoặc ít nhất là có thể trình bày) thì bạn sẽ cần sử dụng xử lý tài liệu lỗi tùy chỉnh trong tệp .htaccess của mình.

Hãy nói rằng bạn đã thiết kế một trang lỗi 404 tùy chỉnh được gọi là XN 404.html, và lưu nó vào một thư mục con trong thư mục web của bạn có tên là error error_pages. Sử dụng dòng mã sau trong .htaccess, bạn có thể gọi trang đó lên bất cứ khi nào gặp phải lỗi 404;

ErrorDocument 404 /error_pages/404.html

Sử dụng kỹ thuật này, bạn có thể lưu các bản sao tùy chỉnh của từng loại lỗi riêng lẻ mà bạn muốn tính đến và thiết lập chúng để được gọi bằng cách bao gồm mã cần thiết trong tệp .htaccess của bạn. Thường gặp nhất mã lỗi bao gồm;

  • 400 - Yêu cầu xấu
  • 403 - Cấm
  • 404 - Không tìm thấy tệp
  • 500 - Lỗi máy chủ nội bộ
  • 503 - Dịch vụ không khả dụng

KHAI THÁC. Xử lý chuyển hướng

Có thể đôi khi bạn muốn đặt chuyển hướng chăn để bạn có thể hướng khách truy cập của mình đến các trang cụ thể mà họ không biết. Ví dụ: nếu ban đầu bạn sử dụng HTTP nhưng có từ đó đã cài đặt SSL và chuyển sang HTTPS, bạn muốn tất cả người dùng của bạn sử dụng phiên bản HTTPS của trang web của bạn.

Trong tình huống này, điều bạn cần làm là sử dụng quy tắc Viết lại;

RewriteEngine On RewriteCond% {SERVER_PORT} 80 RewriteRule ^ (. *) $ Https://www.yourdomain.com/$1 [R, L]

Mã cho điều này có thể được sửa đổi tùy thuộc vào nhu cầu của bạn. Ví dụ: nếu bạn muốn chuyển hướng người dùng từ tên miền cũ sang tên miền mới, thì bạn sẽ sử dụng;

RewriteEngine On RewriteCond% {HTTP_HOST} ^ olddomain.com [NC, OR] RewriteCond% {HTTP_HOST} ^ www.olddomain.com [NC] RewriteRule ^ (. *) $ Http://newdomain.com/$1 [L, R = 301, NC]

Có nhiều biến thể làm thế nào bạn có thể thiết lập chuyển hướng. Chi tiết về cú pháp cho Rewrite có thể được tìm thấy trong Tài liệu Apache trang.

Một trong những điều hữu ích nhất mà các chuyển hướng có thể làm cho bạn là giúp bạn hướng dẫn các công cụ tìm kiếm đến các trang mà bạn đã di chuyển. Thông thường, các công cụ tìm kiếm sẽ lập chỉ mục các liên kết và nếu họ không thể tìm đúng trang ở đó thì họ sẽ cho rằng nội dung đã biến mất.

Bằng cách sử dụng chuyển hướng, bạn có thể dễ dàng di chuyển nội dung và cho phép trình thu thập dữ liệu web biết nơi tìm nội dung mà họ đã lập chỉ mục trước đó. Để làm như vậy, sử dụng;

Chuyển hướng 301 / lưu trữ / / mục nhập /

Hướng dẫn 301 không chỉ cho phép người dùng truy cập nội dung cũ một cách liền mạch mà còn đóng vai trò là một hướng dẫn cho trình thu thập dữ liệu web rằng nội dung được di chuyển vĩnh viễn. Điều này giúp họ bằng cách cho phép họ lập chỉ mục lại các liên kết một cách nhanh chóng.

KHAI THÁC. Tăng bảo mật trang web của bạn

Tôi thấy rằng nhiều chủ sở hữu trang web mới có xu hướng phụ thuộc quá nhiều vào các công cụ bên ngoài để tăng bảo mật trang web của họ. Mặc dù đúng là có rất nhiều ứng dụng tuyệt vời ngoài kia, bạn có thể bắt đầu với những điều cơ bản trong tệp .htaccess của mình.

Mật khẩu bảo vệ thư mục

Để làm điều này, bạn sẽ cần hai tệp, .htaccess và .htpasswd. Tệp .htpasswd bao gồm một số mã hóa, vì vậy hãy sử dụng một công cụ như Máy phát điện Htpasswd để tạo tập tin. Tệp .htaccess phải bao gồm mã này;

AuthType Basic AuthName "Khu vực được bảo vệ bằng mật khẩu" AuthUserFile /path/to/.htpasswd Yêu cầu người dùng hợp lệ

Vô hiệu hóa duyệt thư mục

Đây là một trong những cách dễ nhất để làm và chỉ cần hai dòng mã được đưa vào tệp .htaccess của bạn;

# Vô hiệu hóa tùy chọn duyệt thư mục-Indexes

Chặn IP cụ thể

Để chặn các IP riêng lẻ truy cập trang web của bạn, hãy thêm đoạn mã sau vào tệp .htaccess của bạn;

Từ chối từ XXX.XXX.XXX.XXX

Nơi bạn thay thế XXX bằng các giá trị IP số. Có các biến thể của mã này có thể được sử dụng để chặn một dải địa chỉ IP hoặc nhiều địa chỉ IP.

KHAI THÁC. Bảo vệ liên kết

Hotlinking xảy ra khi các trang web khác liên kết đến hình ảnh mà bạn đang lưu trữ. Điều này là không mong muốn vì họ đang sử dụng cả không gian cũng như băng thông của bạn. Để ngăn chặn liên kết hình ảnh nóng, thêm phần sau vào tệp .htaccess của bạn;

RewriteEngine trên RewriteCond% {HTTP_REFERER}! ^ $ RewriteCond% {HTTP_REFERER}! ^ Http: // (www \.) Example.com/.*$ [NC] RewriteRule \. (Gif | jpg | jpeg | bmp) [F]

Dòng cuối cùng của mã đó là nơi bạn chỉ định tệp nào bạn muốn chặn các trang web khỏi liên kết nóng. Về cơ bản, nó hướng dẫn Apache chặn tất cả các liên kết đến các tệp không phải từ tên miền http://www.example.com/.

Nhiều người thường không kiểm tra lại bài đăng của họ, vì vậy nếu bạn thực sự muốn làm họ xấu hổ, bạn có thể hiển thị một thông báo tùy chỉnh tới các trang web đang cố gắng liên kết nóng;

RewriteEngine trên RewriteCond% {HTTP_REFERER}! ^ $ RewriteCond% {HTTP_REFERER}! ^ Http: // (www \.) Example.com/.*$ [NC] RewriteRule \. (Gif | jpg) $ http: // www .example.com / stopsteals.gif [R, L]

Có thể hiển thị một hình ảnh thay thế trên trang web vi phạm như thế này:

KHAI THÁC. Bảo vệ tệp .htaccess

Bây giờ bạn đang nhận ra mức độ hữu ích của một công cụ, tệp .htaccess thực sự hữu ích. Vì bạn đã nhận ra điều đó, đã đến lúc bạn nghĩ về việc bảo vệ tập tin có giá trị này! Nếu bạn đang sử dụng tệp .htpasswd, thì có lẽ bạn cũng muốn che chắn điều đó và cách để làm cả hai là;

# bảo vệ .htaccess và .htpasswd <Files ~ "^. * \. ([Hh] [Tt])"> Cho phép đặt hàng, từ chối từ chối Tất cả thỏa mãn tất cả </ Files>

Xin lưu ý rằng trên hầu hết các máy chủ bảo mật, các tệp này đã được bảo vệ. Trước khi bạn thêm mã này, hãy kiểm tra xem bạn có thể truy cập các tệp trong cửa sổ trình duyệt không. Chỉ cần nhập URL và thêm /.htaccess phía sau để xem bạn có thể xem tệp không. Nếu bạn không thể, bạn có thể sẽ thấy một thông báo lỗi.

KHAI THÁC. Đặt múi giờ máy chủ của bạn

Nếu bạn nhận thấy rằng vì lý do này hay lý do khác, thời gian trên máy chủ của bạn dường như bị tắt một chút thì bạn có thể cần phải buộc múi giờ bằng cách sử dụng tệp .htaccess. Đây là điều dễ dàng thực hiện lại và chỉ cần một dòng mã;

SetEnv TZ America / yourtimezone

Có một danh sách lớn các múi giờ có sẵn và bạn có thể tìm thấy kết quả khớp gần nhất với bạn bằng cách tham khảo danh sách múi giờ được hỗ trợ.

Nắm bắt sức mạnh của .htaccess

Các mẫu tôi đã trình bày ở đây chỉ là phần nổi của tảng băng rất lớn. Nó cung cấp cho người dùng lưu trữ web sức mạnh lớn hơn nhiều so với các trang web của họ so với thông thường được cho phép thông qua bảng điều khiển và cung cấp cho họ một loạt các công cụ để làm việc.

Học cách sử dụng mã chỉ là một bước đi với sức mạnh của Google và điều tốt nhất về nó là bạn chỉ cần chọn và tìm hiểu những thứ bạn cần sử dụng.

Về Jerry Low

Người sáng lập WebhostingSecretReveal.net (WHSR) - một đánh giá lưu trữ được người dùng 100,000 tin cậy và sử dụng. Hơn nhiều năm kinh nghiệm trong lĩnh vực lưu trữ web, tiếp thị liên kết và SEO. Cộng tác viên của ProBlogger.net, Business.com, SocialMediaToday.com, v.v.