Hướng dẫn cấu hình .htaccess từ a-z

Quảng cáo
Ads_ngang
Website dinhthuanit.com có bài Hướng dẫn cấu hình .htaccess từ a-z

htaccess tự động sinh ra sau khi bạn cài đặt wordpress. Đây là file cấu hình server cho máy server Apache, sử dụng để cấu hình permalink của website. Khi bạn cập nhật là đường dẫn URL từ trang Settings > Permalinks , thì file .htaccess sẽ có sửa đổi.

Nội dung của file này sẽ chỉ dẫn Apache cho việc điều hướng website của bạn như mong muốn. Tuy nhiên, nếu bạn gắng gượng sửa đổi hoặc không thực sự rành về cấu hình của file này thì sẽ dẫn đến lỗi website.

Nhờ có .htaccess bạn có thể:

  • Cải thiện bảo mật wordpress
  • Tăng tốc độ load trang
  • Thiết lập chuyển hướng
  • Giới hạn/chống spam
  • ..

Vị trí của .htaccess sẽ nằm tại thư mục gốc chứa code WordPress (chứa thư mục wp-admin, wp-includes & wp-content). Bạn cũng có thể tạo nhiều file .htaccess ở các thư mục con khác. Với WordPress có thể đặt ở thư mục wp-admin, wp-content/uploads

.htaccess sẽ có ảnh hưởng bắt đầu từ trong thư mục mẹ chứa nó, và các thư mục con trở vào.

Bạn tưởng tượng, nếu file .htaccess trong thư mục wp-content/uploads , thư mục `uploads` và các thư mục con của nó sẽ bị tác động bởi file .htaccess này. Hãy cẩn thận!!

Sửa code trong .htaccess khá đơn giản, với những đoạn snippet mẫu mà tôi sẽ đề cập trong bài viết này. Trước khi bắt đầu, bạn nên tạo bản sao .htaccess, nếu có sẩy ra lỗi bạn đơn giản khôi phục. Mặc định file .htaccess có nội như thế này.

 # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index.php$ - - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # WordPress  

Nếu bạn cài đặt WordPress multisite, code sẽ khác 1 chút. Tiếp sau bạn sẽ rất cần bổ xung cấu hình với các đoạn snippet mà mình trình bày ở dưới đây. Chú ý, đừng sửa code trong phần # BEGIN WordPress # END WordPress vì này là nội dung tạo bởi wordpress, rất cũng có thể có thể sẽ bị tạo lại bạn cập nhật lại permalink.

Tắt duyệt thư mục

Mặc định nếu bạn truy cập vào một thư mục, server sẽ trả về trang liệt kê các files có trong đó. Nó trông giống như trình quản lý file đạng đơn giản.

Quá dễ dàng với hacker để xem các files của bạn, một manh mối quan trọng với họ để cũng đều có thể tấn công vào wordpress. Thêm dòng sau vào .htaccess để tắt chế độ duyệt thư mục.

 # Désactivate the display of contents of rédirectories Options All -Indexes  

Cũng có thể sử dụng mã này để chặn duyệt thư mục theo phương pháp khác.

 # Alternative pour empêcher le listing des rédirectories IndexIgnore *  

Ẩn thông tin máy chủ Apache

Với một số nhà sản xuất hosting, có riêng một trang để hiển thị tin tức của máy server web. Nếu bạn để lộ thông tin này cho hacker biết, server có thể bị tấn công, đặc biệt nếu bạn không thường xuyên cập hệ điều hành mới.

Vì vậy, tốt nhất bạn nên tắt tin tức này đi.

 # Mask the information of server ServerSignature Off  

Kích hoạt theo dấu symbolic link

Thêm dòng sau vào .htaccess, server của bạn sẽ được thể theo dõi được symbolic links (vd: shortcut)

 # Activation du suivi des liens symboliques Options +FollowSymLinks  

Cấu hình múi giờ

Không quá quan trọng nếu bạn đặt máy server ở nước ngoài, tuy nhiên bạn cũng có thể điều tiết lại múi giờ bằng phương pháp thêm mã này vào .htaccess

 # Choix du fuseau horaire SetEnv TZ Europe/Paris  

Mã hóa văn bản hiển thị

Hầu hết các web hiện giờ đều mã hóa văn bản cho HTML là UTF8.

 # Encoding by défaut des fichiers textes et HTML AddDefaultCharset UTF-8  

Bảo vệ file cấu hình wp-config.php

Đây là File chứa toàn bộ cấu hình của WordPress, như thông tin database. Đó là thông tin nhạy cảm, cần phải được bảo mật. Thêm các dòng sau vào .htaccess

 # Protéger le fichier wp-config.php    order allow,deny deny from all     

Bảo vệ file .htaccess

Cũng giống wp-config.php , file .htaccess cần được bảo vệ. Để làm điều này, bạn chèn đoạn mã ở dưới đây:

 # Protéger les fichiers .htaccess et .htpasswds    order allow,deny deny from all satisfaction all     

Chống spam bình luận

Nếu bạn đang sẵn có blog, chắc rằng spam bình luận là một điều bạn chẳng thể tránh khỏi, mình một số cách chống spam bình luận hiểu quả bạn cũng có thể có thể tham khảo.

Tuy nhiên, có 1 thủ thuật giúp bạn loại bỏ 1 số hình thức spam phổ biến, bằng cách sử dụng .htaccess. Không có 1 cách duy nhất nào là triệt để, bạn sẽ cần kết hợp với plugin như Akismet, những comments của bạn sẽ có đánh thẻ.

Xem thêm:

  • Tự động xóa bình luận rác trong WordPress
  • Cách chặn Spam bình luận WordPress
 # Éviter le spam de commentaires    RewriteCond %{REQUEST_METHOD} POST rewriteCond %{REQUEST_URI} .wp-comments-post.php* RewriteCond %{HTTP_REFERER} !.hoangweb.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http::///%{REMOTE_ADDR}/$ [R=3D301,L]     

Đừng quên thay ‘hoangweb.com’ bằng tên miền của bạn.

Ngăn chặn tìm kiếm người dùng

Cho dù bạn sử dụng user ID phức tạp, vẫn có thể bị tìm ra. Dĩ nhiên, bạn không cố tình để lộ ID của user trong giao diện WordPress bạn thiết kế.

Nếu bạn truy cập hoangweb.com/?author=x thay x bằng 1, thường là ID của admin. Nếu trang web không tối ưu bảo mật, bạn sẽ được chuyển hướng đến trang kiểu như ‘hoangweb.com/author/idenfiant_auteur’. Khi hacker biết được username, họ sẽ đoán ra password.

Để bảo quản thông tin người dùng, bạn sử dụng đoạn code sau:

 # Éviter que l'on décover l'identifiant d'un auteur # Merci à Jean-Michel Silone of Group Facebook WP-Secure https://www.facebook.com/groups/wp.security/    RewriteCond %{QUERY_STRING} ^author=([0-9]*) RewriteRule .* - [F     

Vô hiệu hóa hotlinking

Nhiều người lấy nguồn ảnh từ wewbsite của họ, sự thông dụng này khiến nội dung chia sẻ chưa được cá nhân hóa. Bạn muốn bài viết của mình tránh bị người khác ăn cắp, bạn sẽ không cho phép website khác chèn link ảnh từ web của bạn? công nghệ này gọi là hotkinking.

Hotlinking cũng có thể có thể gây chậm website của bạn và đạt tới giới hạn đường truyền của máy chủ. Đặc biệt nếu website của bạn đang chạy trên share hosting. Để tránh lỗi này, hãy chèn đoạn code dưới đây vào .htaccess

 # Désactivate le hotlinking de vos images RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?:://(www.)?hoangweb.com [NC] RewriteRule .(jpg|jpeg|png|png|gif)$ http:////fakeimg.pl/400x200/?text=Pas_images [NC,R,L]  

Chặn IP

Nếu bạn thu được cảnh báo một vài IP đã truy cập thường xuyên và thất thường vào quản trị wordpress (vd: IP được phát giác với plugin Login Lockdown).

Ngoài ra, bạn cũng cũng đều có thể tìm ra những IP đã tạo spam cho website để chặn chúng.

Giải pháp này sẽ không toàn diện, vì họ cũng có thể sẽ đổi IP. Tuy nhiên, sẽ chặn được đối với những người không đổi IP.

    order allow,deny deny from xxx.xxx.xxx.xxx.xxx allow from all     

Thay xxx.xxx.xxx.xxx.xxx với IP sẽ không cho truy cập.

Chặn truy cập từ một website khác

Nếu bạn nhận thấy những liên kết tới từ rất nhiều trang web mà hành vi có sự bất thường. Bạn không thích những khách truy cập từ những web đó vào web của bạn. Sử dụng mã sau:

    RewriteEngine on RewriteCond %{HTTP_REFER} monsite1.com [NC,OR] RewriteCond %{HTTP_REFERER} monsite2.com [NC,OR] RewriteRule .* - [F]     

Thay monsite1.com , monsite2.com bằng domain bạn sẽ liệt kê vào danh sách chặn.

Chuyển hướng người dùng từ site này sang site khác.

Bạn không thích người sử dụng không xem được web? mở rộng ý trên, chúng ta muốn khi người truy cập bấm vào trang web của bạn từ các site không mong muốn, thay vì khóa họ trên trang web, bạn sẽ chuyển qua 1 URL khác. Kỹ thuật này còn có vẻ hay hơn, thêm mã sau vào .htaccess

 # Redireiger les visitors venant site vers un other RewriteEngine on RewriteCond %{HTTP_REFER} sitesource.com/ RewriteRule ^(.*)$ http:///www.sitedestination.com [R=301,L]  

Nhớ thay URL nguồn và URL đích cần chuyển hướng.

Thiết lập chuyển hướng

Bên cạnh những tính năng bảo mật, htaccess cho phép bạn cấu hình chuyển hướng. Nếu bạn thiết lập nhiều chuyển hướng, thì nên sử dụng plugin Redirection.

Ví dụ sau, sẽ thêm chuyển hướng cho pages.

 # Redirection d'une page quel Redirect 301 /anciennepage/ http://www.monsite.com/nouvellepage # Redirection of a new catégorie (with rename of category en category) Redirect 301 /category/technology/ http:///www.monsite.com/categorie/techno/  

Chuyển hướng URL sang www.

Chuyển hướng phổ biến nhất từ URL không có www sang URL có dạng www (hoặc ngược lại). Một số nhà cung cấp hosting có tự động làm vấn đề này hoặc bạn phải cấu hình thêm trong quản trị hosting.

Nếu bạn mong muốn chủ động thực hiện, thêm code này vào .htaccess và thay bằng URL của bạn.

 # Redirection du site sans www vers www RewriteEngine On RewriteCond %{HTTP_HOST} ^monsite.com [NC] RewriteRule ^(.*)$ http://www.monsite.com/$1 [L,R=301]  

Chuyển hướng sang HTTPS

Nếu bạn có cài đặt chứng thư SSL cho WordPress để chuyển URL từ http sang https, sử dụng đoạn mã dưới đây.

 # Redirection vers HTTPS RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https:///%{SERVER_NAME}%{REQUEST_URI} [L,R]  

Tùy biến trang bảo dưỡng (maintenance)

Để tạo trang thông báo web đang bảo trì, bạn cũng đều có thể sử dụng đoạn code sau:

 # Page de de maintenance RewriteEngine on RewriteCond %{REQUEST_URI} !%2Maintenance.html$ RewriteCond %%{REMOTE_ADDR} !^xxx.xxx.xxx.xxx RewriteRule $ /maintenance.html [R=302,L]  

Bước tiếp theo, bạn sẽ cần:

  • Tạo file .html với nội dung thông báo website đang nằm ở phía trong chế độ bảo trì.
  • Thêm IP ở dòng 4 (dữ ký tự )

Khi trang web hoạt động trở lại, hãy xóa mã trên hoặc thêm # vào trước mỗi dòng lệnh.

Kích hoạt cache

.htaccess cho phép bạn cache tài nguyên trên trình duyệt của người sử dụng để website chạy nhanh hơn. Thay vì, đó trình duyệt chỉ cần nạp kết quả truy vấn một lần sẽ tăng thời gian tải trang.

Để làm điều này, chèn đoạn mã sau:

 # Mise en cache des fichiers in le navigateur    ExpiresActive On ExpiresDefault "access plus 1 month" ExpiresByType text/html "access plus 0 AExpiresByType " text/xml AexpiresByType appfont-ttf "access plus 1 month month" ExpiresByType font/opentype "access plus 1 month month"" ExpiresByType plus Application/x-font-woff2 "access plus 1 month month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month month" ExpiresByType image/jpg "access plus 1 month"AExpiresByType Axpires image 1 month" ExpiresByType image/gif "access plus 1 monthshockwave-flash "access plus 1 week" ExpiresByType image/x-icon "access plus 1 week"    # En-têtes Header unset ETag FileETag None       Header set Cache-Control "public" /ilesMatch>       Header set Cache-Control "public"       Header set Cache-Control "private"       Header set Cache-Control Cache-Control "private, must-revalidate"        

Xem thêm hướng dẫn bức tốc wordpress với WP Super Cache.

Vô hiệu hóa truy cập tài nguyên

WordPress sử dụng scripts trong thư mục `wp-includes`, bạn cũng có thể vô hiệu hóa người sử dụng truy cập trực tiếp.

 # Block use of certain scripts 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]  

Bảo vệ ngăn chặn các mối dọa dẫm khác

Ở facebook, Richard nói với rằng có thể bảo mật “clickjacking” và những loại tấn công khác với vài dòng code được thêm nữa .htaccess

clickjacking là công nghệ mà cũng có thể cho khách truy cập nhận tin rằng họ đang trên website của bạn khi đây không là trường hợp, nhờ vào thẻ frame hoặc iframe .

Mã dưới đây bảo vệ từ cú click chuột, chiến đấu với các mối dọa dẫm & chặn nội dung trong trường hợp bị tiến công XSS.

 # Protections diverses (XSS, clickjacking and MIME-Type sniffing)    Header set X-XSS-Protection "1; mode=block" Header always append X-Frame-Options SAMEORIGIN Header set X-Content-Type-Options: "nosniff”     

.htaccess cho wp-admin

wp-admin là hệ thống quản trị của WordPress, nơi bạn sẽ đăng bài viết, cấu hình menu, giao diện..

Không ai cũng đều có thể truy cập bất hợp pháp, bạn sẽ thật cần tài khoản đăng nhập để tạo ra quyền quản trị website.

Ở dưới đây là những gì bạn có thể tăng tính bảo mật với file .htaccess mà bạn sẽ thật cần đặt trong thư mục wp-admin.

Giới hạn truy cập vào trang quản trị

Chỉ cho phép người dùng có IP này sẽ được truy cập vào folder wp-admin. Điều này sẽ ngăn cấm người xa lạ kết nối vào website của bạn, thậm trí nếu họ có được tài khoản đăng nhập.

    order deny,allow deny from all # IP Alex allow from xxx.xxx.xxx.xxx.xxx # IP of Nico allow from xxx.xxx.xxx.xxx # IP of other point ofaccès allow from xxx.xxx.xxx.xxx.xxx     

Xem thêm cách chặn IP truy cập cho WordPress

Thêm thông tin xác thực lớp 2

Khi bạn kết nối vào phần quản trị của WordPress, trước khi cũng có thể có thể quản lý bài viết, giao diện, plugin.. bạn sẽ cần phải đăng nhập sử dụng username và password. Tuy nhiên, htaccess cũng có thể có thể cấp phép thêm 1 lớp xác thực thứ 2.

Đầu tiên, bạn tạo file .htpasswd trong thư mục `wp-admin`, nội dung của file này chứa username và mật khẩu đã mã hóa. Tạo htpasswd chúng ta sẽ sử dụng công cụ https://www.htaccesstools.com/htpasswd-generator/.

SAu đó, chèn đoạn mã sau vào file .htaccess

 # Second authentication for administration    Order allow,deny Allow from all Satisfy any    AuthName "Connection à l administration" AuthType Basic AuthUserFile "/chemin/plet/verse/le/ilehtpasswd" Require valid-user  

Lưu ý: nếu bạn sử dụng lớp bảo mật trên, ajax sẽ không hoạt động.

.htaccess cho wp-includes

Chặn truy cập vào file PHP

Tạo file .htaccess trong thư mục wp-includes và dán nội dung như dưới đây để không cho phép ai đó truy cập trực diện vào file php.

 # Block les accès directs aux fichiers PHP (Merci à Sucuri)    allow Aallow from all          Order allow,deny Deny from all       Require all denied    :      Allow from all       Allow from all     

Kỹ thuật trên được cung cấp bởi plugin Sucuri.

.htaccess cho wp-content

Chặn truy cập vào file PHP

Đối với thư mục `wp-content`, code cũng tương tự:

 # Block les accès directs aux fichiers PHP (Merci à Sucuri)       Order allow,deny Deny from all       Require all denied  :    

.htaccess cho wp-content/uploads

Chặn truy cập vào file PHP

Kế thừa code ở trên, bảo vệ thư mục nơi các file ảnh, pdf, audio, video được lưu trữ. Do không có file php nào cần được gọi ở trong thư mục này, nên cũng cần được phải được bảo vệ.

 # Block les accès directs aux fichiers PHP (Merci à Sucuri)       Order allow,deny Deny from all       Require all denied  :    

Có nhiều phương pháp để bảo mật WordPress, sử dụng .htaccess là cách tiếp cận trước mắt và không thể bỏ qua. Hãy luôn sao lưu file .htaccess và phục hồi lại mỗi khi bạn cấu hình lỗi.

Để nhận được bài viết mới vui lòng đăng ký kênh kiến thức WordPress từ A-Z ở Form bên dưới. Bạn cũng cũng có thể có thể thu được sự trợ giúp trên Twitter và Facebook

Bài viết Hướng dẫn cấu hình .htaccess từ a-z được tổng hợp và biên tập bởi: dinhthuanit.com. Mọi ý kiến đóng góp và phản hồi vui lòng gửi Liên Hệ cho dinhthuanit.com để điều chỉnh. dinhthuanit.com xin cảm ơn.

Bài Viết Liên Quan


Bài Viết Khác


Quảng cáo
Ads_ngang