14 snippet tốt nhất cho tập tin .htaccess của WordPress

14 snippet tốt nhất cho tập tin .htaccess của WordPress

.htaccess là tập tin phân phối cấu hình máy chủ Apache, trong đó bạn có thể đưa ra lệnh cho máy chủ về cách phục vụ trang web. Nó có thể được sử dụng cho nhiều loại cấu hình khác nhau, chẳng hạn như cài đặt bảo mật, bảo vệ thư mục, làm đẹp permalink, chuyển hướng, viết lại URL và nhiều cấu hình khác.

htaccess-file.jpg

Tập tin .htaccess chính có thể được tìm thấy trong thư mục gốc của hosting, bên trong thư mục public_html. Tuy nhiên, cũng có thể thiết lập một tập tin .htaccess bên trong các thư mục khác. Ví dụ, thêm một .htaccess vào thư mục wp-admin là một giải pháp bảo mật phổ biến được sử dụng bởi các plugin bảo mật như BulletProof Security.

.htaccess mặc định cho WordPress
Mỗi cài đặt WordPress luôn đi kèm với một tập tin .htaccess mặc định có thể tìm thấy trong thư mục gốc. Tệp được tạo ra khi kích hoạt Pretty Permalinks cho trang web WordPress. Mặc định của .htaccess như sau:
Mã:
# 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

Nếu có bất cứ sai sót nào với qúa trình tùy chỉnh .htaccess, có thể quay lại phiên bản mặc định bất kỳ lúc nào. Các dòng bắt đầu bằng # là các chú thích. Không thêm bất kỳ nội dung nào giữa # BEGIN WordPress# END WordPress do lõi WordPress có thể ghi đè lên phần này.

Cần thêm các quy tắc tùy chỉnh .htaccess dưới các quy tắc mặc định, sau # END WordPress. Trước khi thực hiện bất kỳ thay đổi nào, luôn luôn sao lưu .htaccess hiện tại bằng cách tạo một bản sao của nó và tải nó về máy.

1. Vô hiệu hóa duyệt thư mục
Theo mặc định, duyệt thư mục được kích hoạt trong WordPress. Điều này có nghĩa bất cứ ai trên internet cũng đều có thể liệt kê ra các nội dung của các thư mục và dễ dàng tìm thấy lỗ hổng trong cài đặt WordPress. Có thể vô hiệu hóa tính năng duyệt thư mục bằng cách thêm quy tắc sau vào tập tin .htaccess:
Mã:
Options -Indexes

2. Chặn các địa chỉ IP khả nghi
Với .htaccess, có thể dễ dàng chặn bất kỳ địa chỉ IP nào mà bạn không muốn cấp quyền truy cập cho trang web vì bất kỳ lý do nào. Đơn giản chỉ cần thêm các địa chỉ IP vào quy tắc Deny from, trong mỗi dòng:
Mã:
Order allow,deny
Deny from xxx.xxx.xx.xx
Deny from yyy.yyy.yy.yy
Allow from all

3. Bảo vệ tất cả tập tin dễ bị tấn công
Giữ các error log và tập tin cấu hình được bảo vệ là một nhiệm vụ bảo mật quan trọng vì chúng chứa dữ liệu dễ bị tấn công như tên người dùng và mật khẩu cơ sở dữ liệu. Cần bảo vệ các tập tin cấu hình khác như .htaccess hoặc wp-config.php, có thể dễ dàng sử dụng các quy tắc tích lũy. Nó bảo vệ các tập tin dễ bị tấn công nhất trong WordPress từ truy cập trái phép.
Mã:
<FilesMatch "^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$">
Order deny,allow
Deny from all
</FilesMatch>

4. Vô hiệu hóa khả năng truy cập thư mục wp-includes
Thư mục wp-includes chứa các tệp lõi WP quan trọng. Trên thực tế, không cần bất cứ ai truy cập vào các tệp này, tuy nhiên chúng có thể sẽ là mục tiêu được nhắm đến bởi những kẻ tấn công nguy hiểm. Vì vậy, đây là một thực hành bảo mật tốt để vô hiệu hóa quyền truy cập vào thư mục này bằng cách thêm các quy tắc sau vào tập tin .htaccess:
Mã:
<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>

5. Thiết lập chuyển hướng 301
Chuyển hướng 301 là chuyển hướng vĩnh viễn mà bạn có thể chuyển tiếp khách truy cập từ một URL này sang URL khác. Đây là một cách thân thiện, khuyến khích SEO để viết lại URL bất cứ khi nào bạn đặt nội dung lên vị trí mới. Chỉ cần quản lý chuyển hướng 301 trong tập tin .htaccess.

Thay thế /oldurl1//oldurl2/, chỉ cần thêm post slug. Đối với các URL mới, luôn bao gồm URL đầy đủ, bao gồm cả giao thức http:// hoặc https://.
Mã:
Redirect 301 /oldurl1/ https://www.yoursite.com/newurl1/
Redirect 301 /oldurl2/ https://www.yoursite.com/newurl2/

6. Giới hạn truy cập trực tiếp đến các tập tin PHP
Đây cũng là một thực hành bảo mật tốt để chặn truy cập trực tiếp tới các tệp PHP trong thư mục plugin và theme bên trong thư mục wp-content. Bằng cách này, bạn có thể ngăn chặn hacker đưa các mã độc hại vào tệp PHP.
Mã:
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/(.*\.php)$ - [R=404,L]

7. Loại bỏ hỗ trợ cho XML-RPC
Giao diện XML-RPC cho phép truy cập vào các ứng dụng của bên thứ ba như Jetpack vào trang web để có thể đăng nội dung hoặc thực hiện các tác vụ khác nhau trên đó. XML-RPC được kích hoạt trên mọi trang web WordPress theo mặc định. Tuy nhiên, có thể dễ bị khai thác bởi những kẻ tấn công, vì vậy nếu không muốn sử dụng các ứng dụng của bên thứ ba trên trang web, tốt hơn là vô hiệu nó. Nếu muốn có thể thêm một số địa chỉ IP như là ngoại lệ cho quy tắc.
Mã:
<FilesMatch "^(xmlrpc\.php)">
Order deny,allow
Allow from xxx.xxx.xx.xx
Allow from yyy.yyy.yy.yy
Deny from all
</FilesMatch>

8. Kích hoạt duyệt bộ nhớ cache
Có thể tăng tốc độ trang web bằng cách kích hoạt bộ nhớ cache của trình duyệt trên máy chủ để trình duyệt của người dùng không phải tải các tệp tin tĩnh như hình ảnh và tập lệnh mọi lúc. Đoạn code .htaccess dưới đây chứa các khung thời gian hết hạn của trình duyệt trong bộ nhớ cache dành cho WordPress:
Mã:
<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>

9. Ngăn chặn các script độc hại
Các hacker thường xuyên nhắm mục tiêu vào các biến GLOBALS và _REQUEST trên các trang web WordPress. Chúng cố gắng thay đổi các biến này để có thể lây nhiễm vào trang web bằng mã độc. Các quy tắc .htaccess sau đây làm cho máy chủ từ chối những thay đổi này:
Mã:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%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]

10. Bảo vệ thư mục wp-content
Thư mục wp-content chứa plugin, chủ đề, hình ảnh tải lên, một số bản sao lưu và các nội dung quan trọng khác. Ngoài các tệp tin tĩnh như hình ảnh, CSS và JavaScript, không có lý do gì để cho phép truy cập vào thư mục wp-content.

Vì vậy cần phải tạo một tệp .htaccess riêng cho đoạn mã này và đặt nó vào thư mục wp-content. Chỉ cần thêm tất cả các loại tệp mà bạn muốn trình duyệt của người dùng truy cập vào:
Mã:
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|zip|rar)$">
Allow from all
</Files>

11. Ngăn chặn các liên kết nóng đến hình ảnh (Image hotlinking)
Image hotlinking xảy ra khi một trang web khác hiển thị hình ảnh của bạn bằng cách liên kết tới URL của họ trên trang web của bạn. Lưu lượng truy cập tăng làm tăng băng thông và có thể làm chậm đáng kể trang web. Bạn có thể dễ dàng ngăn chặn Image hotlinking trong tập tin .htaccess. Đoạn mã sau chỉ cho phép truy cập vào các hình ảnh cho các URL và Google của riêng bạn:
Mã:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yoursite1.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yoursite2.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]

12. Ngăn liệt kê tên người dùng
WordPress sử dụng cấu trúc URL cụ thể cho các trang tác giả hiển thị tất cả các bài báo thuộc cùng tác giả. Mỗi tác giả có một số ID bắt đầu từ author=1.

Ví dụ: nếu người dùng nhập http://www.yoursite.com/?author=1 vào thanh URL, trình duyệt sẽ tải trang tác giả hiển thị tất cả bài đăng của tác giả đó cùng với tên người dùng của họ. Với cùng một kỹ thuật, rất dễ dàng để tìm ra tên người dùng của mỗi tác giả. Tuy nhiên, có thể ngăn liệt kê tên người dùng bằng cách thêm các quy tắc sau vào tệp tin .htaccess:
Mã:
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} author=d
RewriteRule ^ /? [L,R=301]

13. Thêm các trang error tùy chỉnh
Mặc dù WordPress đi kèm với các trang error mặc định, bạn cũng có thể tạo thêm các trang error tùy chỉnh khác và phục vụ chúng cho người dùng thông qua tệp .htaccess. Bạn cần phải tạo các trang error trong HTML hoặc PHP và tải chúng lên thư mục gốc (public_html). Có thể sử dụng cùng một trang error cho nhiều trạng thái lỗi hoặc nhiều trang error cho nhiều lỗi.
Mã:
ErrorDocument 404 /error404.html
ErrorDocument 403 /error403.html
ErrorDocument 500 /error500.html
ErrorDocument 501 /error501.html

14. Bảo vệ WP Admin
Nếu bạn và tất cả các quản trị viên có IP tĩnh, có thể bảo vệ khu vực quản trị WordPress bằng cách thêm các quy tắc sau vào tệp tin .htaccess. Đoạn mã dưới đây chỉ cho phép các địa chỉ IP truy cập vào mà bạn liệt kê từng cái một trong quy tắc Allow from.
Mã:
AuthUserFile /dev/****
AuthGroupFile /dev/****
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
Order deny,allow
Deny from all
Allow from xxx.xxx.xx.xx
Allow from yyy.yyy.yy.yy
</LIMIT>

Kết
Thêm các quy tắc tùy chỉnh .htaccess vào cài đặt WordPress làm cho trang web an toàn hơn và các trang cũng tải nhanh hơn trước. Chúc các bạn thành công.


PVS - Theo Developerdrive
 

pibebong

Private
Tham gia
06/04/2018
Bài viết
8
Được Like
3
Rất hay, cám ơn bạn đã chia sẻ về htacess cho wordpress, có thêm nhiều cách để chống bot gg
 

Top Bottom