Những đoạn mã .htaccess cần thiết cho website WordPress
Việc thêm các đoạn mã để cấu hình cho file .htaccess là việc rất cần thiết dành cho bất kỳ người quản trị web nào, bởi nó sẽ giúp bạn bảo vệ và giảm thiểu những rủi ro đến với website.Dưới đây WBT sẽ chia sẻ cho các bạn Những đoạn mã .htaccess cần thiết cho website WordPress cực kỳ hữu ích này. Bạn chỉ cần lấy nó vào sử dụng đúng với các tính năng mà bạn đang cần.
Những đoạn mã .htaccess cần thiết cho website WordPress
Thông thường, thì mặc định trong file .htaccess sẽ có đoạn code như sau :
- # BEGIN WordPress
- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteBase /
- RewriteRule ^index\.php$ – [L]
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule . /index.php [L]
- </IfModule>
- # END WordPress
Bởi nó là mặc định thế nên bạn không nên thêm hay xóa bất kỳ đoạn nào cả (Trừ khi bạn đã am hiểu về nó). Dưới đây là những đoạn mã .htaccess cần thiết cho website tùy theo tính năng mà nó mang lại.
>>>Thiết kế website chuyên nghiệp<<< Tham khảo tại đây
Mục lục nội dung bài viết
- 1 1. Cấm truy xuất đến file .htaccess
- 2 2. Ngăn chặn việc tấn công vào file wp-config.php
- 3 3. Ngăn chặn các cuộc tấn công từ XML-RPC DDoS
- 4 4. Bảo vệ khu vực admin
- 5 5. Ngăn chặn việc liệt kê thư mục
- 6 6. Ngăn chặn Brute Force Attack
- 7 7. Loại bỏ các spammer và bots.
- 8 8. Ngăn chặn image hotlinking
- 9 9. Hạn chế truy xuất trực tiếp vào plugin & theme PHP files
- 10 10. Cài đặt chuyển hướng redirects 301
- 11 11. Đưa khách truy cập đến trang bảo trì.
- 12 12. Ngăn chặn việc truy cập vào folder WP includes
- 13 13. Ngăn chặn tấn công kiểu XSS
- 14 14. Bật tính năng browser caching
- 15 15. Cài đặt tuỳ chỉnh cho trang bị lỗi (error page)
- 16 BÀI VIẾT CHẮC CHẮN BẠN QUAN TÂM
1. Cấm truy xuất đến file .htaccess
Nếu bạn không muốn bất kì ai có thể thấy được bạn đang cấu hình cái gì trong file .htaccess thì đoạn mà này sẽ giúp bạn điều đó.
- # Denies access to all .htaccess files
- <Files ~ “^.*\.([Hh][Tt][Aa])”>
- Order Allow,Deny
- Deny from all
- Satisfy all
- </Files>
2. Ngăn chặn việc tấn công vào file wp-config.php
File wp-config.php là file chứa tất cả các cấu hình như user và password của database. Đây là các thông tin rất quan trọng cần được bảo vệ. Với đoạn code bên dưới, các bạn chỉ cần thay thế kí tự xx.xx.xx.xxx là địa chỉ IP từ máy admin, điều này có nghĩa là chỉ có admin mới được truy xuất vào file này. Khi chỉnh sửa các bạn cũng nhớ là bỏ kí tự # ở phía trước đi nhé.
- # Protects wp-config
- <Files wp-config.php>
- Order Allow,Deny
- # Allow from xx.xx.xx.xxx
- # Allow from yy.yy.yy.yyy
- Deny from all
- </Files>
3. Ngăn chặn các cuộc tấn công từ XML-RPC DDoS
Mặc định thì WordPress hỗ trợ XML-RPC, và đó cũng chính là điểm yếu để các hacker khai thác & tấn công. Để bảo vệ nó thì các bạn chỉ cần thay thế dòng xx.xx.xx.xxx là địa chỉ IP của admin là OK.
- # Protects XML-RPC, prevents DDoS attack
- <FilesMatch “^(xmlrpc\.php)”>
- Order Deny,Allow
- # Allow from xx.xx.xx.xxx
- # Allow from yy.yy.yy.yyy
- Deny from all
- </FilesMatch>
>>>Nếu còn chưa biết code là gì<<<Click để tham khảo
4. Bảo vệ khu vực admin
Sẽ chẳng bao giờ là thừa khi bạn cần phải bảo vệ những kẻ xấu đang muốn truy xuất vào khu vực admin trên trang web của mình. Với đoạn mã này cũng giống các đoạn mã trên, bạn chỉ cần đặt vào những IP được phép truy cập vào khu vực này bằng việc thay thế các kí tự xx.xx.xx.xxx hoặc yy.yy.yy.yyy.
- # Protects admin area by IP
- 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.xxx
- Allow from yy.yy.yy.yyy
- </LIMIT>
5. Ngăn chặn việc liệt kê thư mục
Nhiều bạn không để ý vô hiệu hóa tính năng này khi quản trị web bằng WordPress. Bởi nếu không chặn thì ai cũng có thể liệt kê được những file có trong các thư mục như upload, plugin, media…như hình bên dưới.
Với đoạn mã dưới đây giúp bạn giải quyết vấn đề này. Khi người dùng cố tình vào các thư mục đó thì nó sẽ tự động chuyển đến trang thông báo lỗi 403.
- # Prevents directory listing
- Options -Indexes
6. Ngăn chặn Brute Force Attack
Brute Force Attack là một dạng tấn công mà các hacker lấy thông tin username hoặc thông tin cá nhân từ các tài khoản, rồi dùng một phần mềm tự động tạo mật khẩu cho tới khi nó có thể đăng nhập được vào hệ thống. Để có thể giảm thiểu và ngăn chặn loại tấn công này, bạn chỉ việc copy đoạn code bên dưới vào file .htaccess là OK.
- # Prevents username enumeration
- RewriteCond %{QUERY_STRING} author=d
- RewriteRule ^ /? [L,R=301]
7. Loại bỏ các spammer và bots.
Nếu bạn nghi ngờ bị tấn công bởi những địa chỉ IP nào đó đoạn code này sẽ giúp bạn khắc chế điều đó bằng cách copy đoạn code này vào file .htaccess và thay thế nó bằng các kí tự xx và yy bên dưới.
- # Blocks spammers and bots
- <Limit GET POST>
- Order Allow,Deny
- Deny from xx.xx.xx.xxx
- Deny from yy.yy.yy.yyy
- </Limit>
- Allow from all
8. Ngăn chặn image hotlinking
Image hotlinking là thuật ngữ ám chỉ một ai đó lấy hình ảnh bằng việc copy luôn đường dẫn URL hình ảnh từ website của các bạn, và hiển thị nó trên website của họ mà không có sự cho phép của bạn. Nếu các bạn không muốn cho họ lấy ảnh như vậy, thì chỉ việc cho đoạn code này vào file .htaccess của mình và thay thế địa chỉ website mà họ sử dụng hình ảnh vào vị trí xxx
- # Prevents image hotlinking
- RewriteEngine on
- RewriteCond %{HTTP_REFERER} !^$
- RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?xxx.com [NC]
- RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?xxx2.com [NC]
- RewriteRule \.(jpe?g?|png|gif|ico|pdf|flv|swf|gz)$ – [NC,F,L]
9. Hạn chế truy xuất trực tiếp vào plugin & theme PHP files
Thật nguy hiểm khi có ai đó truy xuất trực tiếp vào các file này mà không thèm xin ý kiến các bạn. Với đoạn code bên dưới. là bạn đã có thể đuổi những kẻ lạ mặt đang có ý định muốn phá website của bạn.
- # Restricts access to PHP files from plugin and theme directories
- RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php
- RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/
- RewriteRule wp-content/plugins/(.*\.php)$ – [R=404,L]
- RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php
- RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/
- RewriteRule wp-content/themes/(.*\.phpoooooo)$ – [R=404,L]
10. Cài đặt chuyển hướng redirects 301
Nếu website của bạn có một số link bị xóa hay một lý do nào đó mà bạn cần phải thay đổi đường link mới thì với đoạn CODE dưới đây sẽ giúp bạn trong việc chuyển từ link cũ sang đường link mới.
- # Permanent redirects
- Redirect 301 /link-cu-01/ http://tenmiencuaban.com/link-moi-01
- Redirect 301 /link-cu-02/ http://tenmiencuaban.com/link-moi-02
- Redirect 301 /link-cu-03/ http://tenmiencuaban.com/link-moi-03
11. Đưa khách truy cập đến trang bảo trì.
Có đôi khi bạn cần thời gian để bảo trì website, và không muốn mọi người truy cập vào web của mình lúc này, thì việc chèn đoạn code này vào file .htaccess là điều cần thiết.
- # Redirects to maintenance page
- <IfModule mod_rewrite.c>
- RewriteEngine on
- RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
- RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
- RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
- RewriteRule .* /maintenance.html [R=503,L]
- </IfModule>
>>>Tham khảo dịch vụ: thiết kế website bán hàng
12. Ngăn chặn việc truy cập vào folder WP includes
Wp-includes là folder chứa những file cốt lõi nhất của mã nguồn WordPress, việc bảo vệ folder này là điều cần thiết đối với đoạn mã dưới đây
- # Blocks all wp-includes folders and files
- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteBase /
- RewriteRule ^wp-admin/includes/ – [F,L]
- RewriteRule !^wp-includes/ – [S=3]
- RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]
- RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]
- RewriteRule ^wp-includes/theme-compat/ – [F,L]
- </IfModule>
13. Ngăn chặn tấn công kiểu XSS
Để ngăn chặn được loại tấn công này bạn chỉ cần đưa đoạn mã này vào .htaccess thôi.
- # Blocks some XSS attacks
- <IfModule mod_rewrite.c>
- RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]
- RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
- RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
- RewriteRule .* index.php [F,L]
- </IfModule>
14. Bật tính năng browser caching
Với việc chèn đoạn mã code bên dưới, là các bạn có thể bật được tính năng cache, nó sẽ giúp trang web của các bạn chạy nhanh hơn và đáp ứng khách hàng tốt hơn.
- # Enables browser caching
- <IfModule mod_expires.c>
- ExpiresActive On
- ExpiresByType image/jpg “access 1 year”
- ExpiresByType image/jpeg “access 1 year”
- ExpiresByType image/gif “access 1 year”
- ExpiresByType image/png “access 1 year”
- ExpiresByType text/css “access 1 month”
- ExpiresByType application/pdf “access 1 month”
- ExpiresByType text/x-javascript “access 1 month”
- ExpiresByType application/x-shockwave-flash “access 1 month”
- ExpiresByType image/x-icon “access 1 year”
- ExpiresDefault “access 2 days”
- </IfModule>
15. Cài đặt tuỳ chỉnh cho trang bị lỗi (error page)
Các bạn tạo những trang thông báo lỗi cho riêng mình như loi-403.html , loi-404.html rồi upload nó vào folder gốc. Sau đó dùng đoạn code bên dưới để nó chuyển tới những trang này.
- # Sets up custom error pages
- ErrorDocument 403 /custom-403.html
- ErrorDocument 404 /custom-404.html
Với những đoạn mã .htaccess cần thiết cho website WordPress hy vọng sẽ giúp ích cho bạn trong việc bảo vệ website của mình một cách tốt nhất. Chúc các bạn thành công !!
>>>Xem thêm: Cách chèn font chữ của google vào website