Kiểm soát và bảo mật website với htaccess - File 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. 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 ...
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.
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ì:
- 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.
- 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.
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.