Nội Dung
.htaccess là gì?
.htaccess là tập tin cấu hình được đọc bởi máy chủ – thông thường là apache websever hoặc có thể là Unix hay Linux được tạo ra nhằm mục đích kiểm soát website bằng cách thay đổi cái đặt trên máy chủ và có thể làm nhiều thứ khác nhau. Tuy chỉ là một file được tạo ra nhưng sức mạnh của nó để hoàn thiện website là vô cùng lớn, có thể kể đến một vài chức năng thường được cấu hình trong file .htaccess như viết lại URL, tối ưu hóa tốc độ trang web, tùy chỉnh các trang lỗi 404, 500 theo ý riêng của người cấu hình, ngăn chặn các spam độc hại hay một địa chỉ ip nào đó truy cập đến, v.v…
.htaccess nằm ở đâu?
khi cài đặt WordPress thường thì file .htaccess tự động được tạo ra nhưng dưới dạng file ẩn nhằm mục đích tránh những tác động rủi ro như vô tình xóa đi hay chèn vào những đoạn mã có thể làm cho website hoạt động không như mong muốn. Khi đã có file .htaccess và bạn muốn hiển thị file để tự cấu hình thì làm theo bước sau:
Truy cập vào Cpanel -> file manager -> chọn setting->
Một form giao diện sẽ hiện lên –> chọn mục show hidden file.
Đôi khi trong một số trường hợp sau khi cài đặt WordPress mà bạn không thấy file .htaccess hay vì một lý do nào đó mà vô tình file này đã bị xóa thì bạn có thể tạo bằng thủ công như sau:
Truy cập vào Cpanel -> file manager->public_html chọn new file.
Đặt tên file là .htaccess -> Creat new file
Chức năng của file .htaccess
Sau khi đã biết được file .htaccess là gì và nằm ở đâu trong website WordPress thì bây giờ chúng ta sẽ tìm hiểu những chức năng của file này. kể vể chức năng của .htaccess thì nhiều vô số nhưng trong bải viết này sẽ tập trung vào những chức năng chính sau đây. Một lời khuyên là ngay trước khi bắt đầu cấu hình mới file.htaccess bạn nên có một bản sao lưu để đề phòng trường hợp máy chủ không hỗ trỡ đọc những đoạn mã mới
1/Ngăn chặn một số ip truy cập vào trang web
Một trang web được tạo ra là nhằm mục đích thu hút lượt truy cập, tuy nhiên nếu bạn biết một lượt truy cập từ địa chỉ ip nào đó vào website của mình với mục đích xấu thì nên cấu hình cho file .htaccess để đề phòng trường hợp website bị phá hoại. Mã cho trong file .htaccess cho chức năng này là:
<limit get="GET" post="POST" put="PUT"> order allow,deny allow from all deny from 123.456.789 deny from 93.121.788 deny from 223.956.789 deny from 128.456.780 </limit>
2/Tăng tốc website bằng cách vô hiệu hóa hotlinking
Như đã giới thiệu trong bài cách tối ưu và tăng tốc webste WordPress, website của bạn có thể bị chậm từ việc bị mất băng thông do bên ăn cắp sử dụng đường dẫn ảnh trực tiếp lên máy chủ của học. để tránh tình trang này bạn cần phải cấu hình trong file .htaccess đoạn mã như sau:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?website_cua_ban [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
3/Tạo chuyển hướng khi truy cập vào website
Thông thường việc này được cấu hình trong file .htaccess là để chuyển đến một trang khác nhằm thông báo rằng website của bạn đang trong thời gian bảo trì hay không còn hoạt động nữa
RewriteEngine on RewriteCond %{REQUEST_URI} !/site_cua_ban.html$ RewriteCond %{REMOTE_ADDR} !^123.123.123.123 RewriteRule $ /site_cua_ban.html [R=302,L]
4/Ngăn chặn các địa chỉ ip truy cập vào trang admin trừ bạn
Điều này là cần thiết vì quan trọng hơn hết bạn phải làm chủ website của bạn, nếu không được bảo mật rất có thể hacker sẽ xâm nhập và lấy đi quyền làm chủ website, bạn có thể đơn giản cấu hình cho những địa chỉ ip được phép truy cập.
AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "Wordpress Admin Access Control" AuthType Basic <limit get> order deny,allow deny from all allow from xx.xx.xx.xx #dia_chi_ip_duoc_phep_truy_cap </limit>
5/Viết lại đường dẫn thân thiện cho SEO
Chúng ta đều biết đường dẫn có dạng leanhtien.php?id=1 như vậy thường không tốt cho SEO, nên cần phải chuyển đường dẫn về dạng thân thiện với SEO hơn như leanhtien-1.html
RewriteEngine on RewriteRule ^leanhtien-([0-9]+).html$ leanhtien.php?id=$1
Nếu là SEOer chắc hẳn bạn sẽ không quên cơ hội thêm từ khóa chính vào url
leanhtien.php?id = 1 -> leanhtien-thu-thuat-.htaccess-1.html
RewriteEngine on RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+).html$ product.php?id=$2
6/ Điều hướng về một trang lỗi tùy chỉnh
Trong nhiều trường hợp xảy ra lỗi ngoài tầm kiểm soát, lỗi cá nhân hay bạn muốn xử lý một lỗi nào đó nằm bên ngoài website thì một lựa chọn điều hướng đến trang thông báo lỗi sẽ làm cho website của bạn chuyên nghiệp hơn. Hơn nữa bạn cũng có thể lựa chọn những thông báo riêng cho website.
ErrorDocument mã_số_lỗi /trangloi.html
VD bạn muốn mã số lỗi cho lỗi không tìm thấy trang là 404 thì bạn sẽ cấu hình như sau
ErrorDocument 404 /notfound.html
Một vài quy tắc về mã số lỗi và lỗi tương ướng với mã số như
401 – Yêu cầu ủy quyền
400 – Yêu cầu không hợp lệ
500 – Lỗi máy chủ nội bộ
404 – Trang không đúng
7/Thêm mật khẩu bảo vệ vào thư mục của bạn
Một website hay blog khi bị tấn công thường các bài viết sẽ bị xóa sạch, nếu điều này xảy ra sẽ làm mất rất nhiều thời gian và rất khó để khôi phục lại tranh như ban đầu vì vậy cần phải cài đặt mật khẩu bảo vệ thư mục Thêm bảo vệ mật khẩu cho các tệp cung cấp quyền truy cập vào các thư mục trên blog của bạn thêm một lớp bảo mật bổ sung và ngăn người dùng trái phép truy cập các trang web khác được kết nối với blog của bạn.
AuthType Basic AuthName "restricted area" AuthUserFile /usr/local/var/www/html/.htpasses require valid-user
8/Điều hướng 301
Đôi khi bạn muốn chuyển hướng khách truy cập trang của bạn đến một trang khác hay chuyển nội dung từ một trang sang một trang mới với một địa chỉ khác. Cách này cũng giúp những người mong muốn kiếm tiền từ quảng cáo(như là Google Adsen) nó sẽ bắt người dùng sử dụng một tên miền nhất định do bạn chọn (một domain sẽ có 2 kiểu địa chỉ (Vd: www.ten_website và ten_website)
Bạn thêm code sau vào .htaccess:
RewriteEngine On RewriteCond %{HTTP_HOST} !^\.ten_website\.com$[NC] RewriteRule ^(.*)$ http://www.ten_website [R=301*L]
9/Thay thế trang index bằng một trang tùy chỉnh
Khi nhập url một trang web máy chủ sẽ tìm kiếm trang index.html làm trang mặc định cho trang web đó nhưng với các yêu cầu của khác nhau mà webmaster muốn thay đổi trang mặc định của mình thành một trang khác như muốn thay đổi giao diện cho trang web một thời gian, hay tạm thời đang sử dụng trang index.html vào một việc nào đó, v.v…
DirectoryIndex trang_thay_the1.php trang_thay_the2.php index.php index.html index.htm
với cách cấu hình này máy chủ sẽ tìm lần lượt tìm trang có hoạt động sẽ là trang thay thế trang index.
10/Ngăn không cho truy cập vào các tập tin php nhạy cảm
Tệp config.php chứa các thông tin nhạy cảm như tên cơ sở dữ liệu, id người dùng hay mật khẩu và chính là cây cầu nối đến cơ sở dữ liệu, thông tin trong tệp này thì không được mã hóa cho nên khi bị tấn công sẽ rất nguy hiểm đến website. Vì vậy cần tạo thêm cho nó một lớp bảo mật.
# protect wpconfig.php <files wp-config.php> order allow,deny deny from all </files>
Lời kết:
Trên đây là 10 thủ thuật với file .htaccess để quản lý và kiểm soát website theo ý riêng của webmaster, bạn có thể thẫy rõ chỉ một file nhỏ nhưng công dụng của nó là toàn to lớn. Bài viết này đã tổng hợp các thủ thuất trong khá quan trọng trong việc cấu hình một file .htaccess tránh được các rủi ro về bảo mật cũng như làm cho website của bạn chuyện nghiệp hơn. Hy vọng với những kiến thức trên đây bạn có thể quản lý website tốt hơn. Chúc các bạn thành công!