HỌC HTACCESS
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Kiểm soát và bảo mật website với htaccess

Trong phần này ta sẽ tìm hiểu một số quy tắc giúp trang web được an toàn, kiểm soát được website và tìm hiểu một số tính năng căn bản tốt cho SEO.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Lưu ý: Trong các ví dụ đoạn code nào được bôi xanh là đoạn code ta có thể chỉnh sửa theo ý mình

Bật chức năng Rewrite

Đây là bước đầu tiên để ta thao tác với fiel .htaccess. Để bật chức năng rewrite này ta chỉ cần thêm một đoạn code nhỏ lên đầu file .htacess như sau:

Options +FollowSymlinks
RewriteEngine on

Xử lý Chuyển hướng lỗi

Một trong những ứng dụng phổ biến của htaccess là xử lý các lỗi như lỗi không tìm thấy dữ liệu hoặc lỗi không theo được. Các lỗi này được thể hiện thông qua các con số mà máy chủ đáp trả. Lỗi thông dụng nhất là lỗi không tìm thấy dữ liệu 404. Lỗi này sẽ xuất hiện tùy theo trình duyệt nhìn rất là khó chịu, điều này đối với các bộ máy tìm kiếm như google rất ghét. Để giải quyết vấn đề này ta có thể sử dụng file .htaccess để chuyển hướng. Điều này rất quan trọng với SEO vì:

  1. Nếu ta chuyển hướng tốt với báo cáo 301, tức là thông báo không có gì ở link vừa vào và chuyển hướng qua link khác, như vậy sẽ công cụ search engines sẽ hiểu đây không phải là url không tồn tại.
  2. Thân thiện với người dùng vì nếu ta có một trang thông báo lỗi thì người dùng sẽ hiểu họ đang đi vào một đường dẫn không tồn tại, cộng với một số hướng dẫn quay trở lại ở trang thông báo lỗi sẽ giúp người dùng cảm thấy dễ chịu hơn.

Để điều hướng các trang lỗi đương nhiên trước tiên ta phải tạo một số trang thông báo lỗi. Điều này đối với một số CMS như wordpress hay các Framwork như Codeigniter có sẵn cho chúng ta nhưng không đẹp lắm.

Bài viết này được đăng tại [free tuts .net]

Ví dụ file chuyển hướng lỗi 404

Options +FollowSymlinks
RewriteEngine on
ErrorDocument 404 http://www.example.com/404.html

Đoạn code trên từ khóa ErrorDocument có ý nghĩa là nếu url request bị lỗi thì xử lý chuyển hướng. Ở đây lỗi có hiệu lực là 404 và link chuyển hướng là http://www.example.com/404.html.

Ví dụ trên tôi đã dùng một địa chỉ đầy đủ (tức là địa chỉ có full url) nhưng nếu ta để ở dạng local thì hay hơn. Ví dụ:

ErrorDocument 401 /errir_401.html

ErrorDocument 403 / errir_403.html

ErrorDocument 404 / errir_404.html

ErrorDocument 400 / errir_400.html

Các con số lỗi trên có ý nghĩa như sau:

  • 404 - Not Found
  • 401/403 - Unauthorized/Forbidden
  • 400 - Bad Request
  • 500 - Internal Server Error

Và còn rất nhiêu lỗi khác tôi không thể liệt kê hết được. Nhưng chung quy thì lỗi 404 vẫn là lỗi thông dụng nhất nên các website hiện nay chủ yếu tập trung vào lỗi này.

Hiển Thị Trang Index Giả Mạo

Nếu bạn vào một folder nào đó trong website mà không có file index.html thì lúc này tất cả các file hay folder đề bị thấy hết, điều này không tốt lắm vì lộ hết các files và folders. Giải quyết vấn đề này ta dùng file .htaccess với dòng lệnh:

Options All -Indexes

Dòng lệnh này sẽ hiển thị một thông báo Forbidden thay vì hiển thị cấu trúc folder.

Thiết lập trang index mặc định

Nếu bạn muốn thiết lập file mặc định thay vì file index.html thì ban bạn thêm đoạn code sau vào file .htaccess:

DirectoryIndex newindex.html

Trong đó newindex.html là tên file bạn muốn thiết lập.

Bảo Vệ File .htaccess

Như bạn biết file htaccess là một file đặc biệt dùng để cấu hình Server một cách dễ dàng, sẽ rất nguy hiểm nếu hacker tấn công vào file này của bạn. Để bảo vệ fiel này ta dùng đoạn code sau:

<Files .htaccess>

Order Allow,Deny

Deny from all

</Files>

Trong đó file .htaccess là tên file muốn bảo vệ. Nội dung bên trong có nghĩa không cho người nào truy cập đến file này.

Không phải chỉ bảo vệ được file .htaccess mà ta có thể bảo vệ một file bất kì. Ví dụ dưới đây tôi bảo vệ file wp-config.php trong Wordpress.

<Files wp-config.php>

Order Allow,Deny

Deny from all

</Files>

Đặt mật khẩu cho folder

Đôi lúc ta cần đặt mật khẩu bảo vệ một file nào đó, tức là muốn vào file đó thì phải nhập username và password. Để làm được điều này các bạn phải tạo một file với tên .htpasswd tại folder gốc của file bạn muốn bảo vệ sau đó điền nội dung sau:

MyUsername:MyPassword

Trong đó MyUsrename là tên username, MyPassword là mật khẩu, hai giá trị này bạn có thể thay đổi bất kì.

Tiếp theo ở file .htaccess bạn thêm đoạn code sau:

AuthName "Restricted Area" 

AuthType Basic 

AuthUserFile /demo/.htpasswd 

AuthGroupFile /dev/null

<Files file1.php>

require valid-user

</Files>

Trong đó AuthName "Restricted Area" là tên chương trình. /demo/.htpasswd là đường dẫn đến file htpasswd tính từ thư mục chứa file .htaccess. file1.php là tên file muốn bảo vệ. Bạn có thể lên trang web http://www.tools.dynamicdrive.com/password/ để generate thông tin và lấy code về dán vào file htaccess thay vì tự code.

Lời Kết

Trong bài này ta chỉ tìm hiểu những ứng dụng bảo vệ website căn bản của file .htaccess. Bài tiếp theo ta sẽ tìm hiểu nâng cao hơn đó là sử dụng file .htaccess để rewrite url.

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top