Must-revalidate là gì

File .htaccess là một tập tin cấu hình mà ảnh hưởng đến cách một máy chủ web đáp ứng các yêu cầu khác nhau. Nó được hỗ trợ bởi một số máy chủ web, trong đó có Apache phổ biến được sử dụng bởi các nhà cung cấp dịch vụ lưu trữ web thương mại, cho phép chúng ta thực hiện điều hướng và bật các tính năng một cách linh hoạt hoặc bảo vệ dữ liệu tệp tin nào đó.

Must-revalidate là gì

Nhìn vào “định nghĩa” về file .htaccess bạn đã gần như thấy được điều mình muốn. .htaccess chính là nơi lưu trữ những hành động điều hướng URL trên site. Nếu như bạn am hiểu về .htaccess… à mà không khi đọc hết bài viết này chắc chắn bạn sẽ hiểu hết về nó thôi, bạn sẽ thấy file .htaccess có công dụng “thần thánh” mà công sức bạn bỏ ra chỉ.. vài dòng lệnh.

File .htaccess nằm ở đâu ?

Tập tin .htaccess nằm ngang hàng với thư mục gốc( thường là public_html, www, …) và file robots.txt. Các bạn mở host, tìm theo đường dẫn sau:

  • Đối với host DirectAdmin, bạn tìm theo đường dẫn: File → public_html → .htaccess

Must-revalidate là gì

  • Đối với host Cpanel, bạn tìm theo đường dẫn: File manager → Public_html → .htaccess

Must-revalidate là gì

Tôi không tìm thấy file .htaccess trong tập tin ?

Trên hầu hết các trình quản lý hệ thống tệp tin của hosting, tên tệp bắt đầu bằng dấu chấm ( .) là các tệp bị ẩn . Điều này có nghĩa là chúng thường không hiển thị theo mặc định vì lý do bảo mật. Các bạn chỉ cần vào phần setting → tích chọn show hidden folder(Hiển thị tệp tin ẩn) hoặc show system files là xong.

Must-revalidate là gì

Tôi không có file .htaccess thì sao ?

Bạn chọn vào phần tệp → tạo tệp mới và đặt tên là .htaccess sau đó save lại. Bạn cũng có thể tạo 1 tập tin trên máy tính rồi lưu dưới tên .htaccess rồi upload file lên thư mục gốc (ngang hàng với robots.txt).

Must-revalidate là gì

Sau khi có file rồi, bạn tiến hành mở lên và chèn đoạn code mặc định này vào:

# BEGIN WordPress 

RewriteRule ^index.php$ – [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

# END WordPress

Chức năng “thần thánh” của .htaccess

Đi vào trọng tâm, tôi sẽ hướng dẫn các bạn tổng hợp các chức năng mà .htaccess mang lại.

Chuyển hướng www và non – www về một phiên bản

Hai phiên bản www và non-www được google tính là hai domain khác nhau. Dó đó ảnh hưởng rất lớn đến kết quả SEO. Bạn chỉ nên để một trong hai phiên bản mà thôi. Để chuyển hướng về phiên bản www, bạn thêm đoạn code sau:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

RewriteRule ^index.php$ – [L]0

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ – [L]3

RewriteRule ^index.php$ – [L]4

Xử lý lỗi 4xx hoặc 5xx redirect đến trang lỗi tùy chỉnh

Trong quá trình vận hành website sẽ không tránh khỏi các lỗi như:

Các lỗi cơ bản từ người dùng

401: yêu cầu ủy quyền

403: Không cho phép truy cập

404: Nội dung không tồn tại/đã xóa

405: Phương thức nhập sai

Các lỗi cơ bản từ server

500: lỗi máy chủ nội bộ

503: Dịch vụ không khả dụng

504: Hết thời gian chờ

505: Phiên bản HTTP không được hỗ trợ

Bạn có thể tận dụng chức năng direct về các trang thông báo lỗi đã thiết kế sẵn bằng đoạn code sau:
ErrorDocument 401 /error/401.php

ErrorDocument 403 /error/403.php

ErrorDocument 404 /error/404.php

ErrorDocument 405 /error/405.php

ErrorDocument 500 /error/500.php

ErrorDocument 503 /error/503.php

ErrorDocument 504 /error/504.php

ErrorDocument 505 /error/505.php

Đặt mật khẩu cho thư mục hoặc file

Bạn muốn bảo vệ một số folder hoặc file riêng quan trọng, thêm đoạn mã code sau:
RewriteRule ^index.php$ – [L]5

RewriteRule ^index.php$ – [L]6

RewriteRule ^index.php$ – [L]7

RewriteRule ^index.php$ – [L]8

RewriteRule ^index.php$ – [L]9

RewriteCond %{REQUEST_FILENAME} !-f0

RewriteCond %{REQUEST_FILENAME} !-f1

RewriteCond %{REQUEST_FILENAME} !-f2

RewriteCond %{REQUEST_FILENAME} !-f3

RewriteCond %{REQUEST_FILENAME} !-f4

RewriteCond %{REQUEST_FILENAME} !-f5

RewriteRule ^index.php$ – [L]9

RewriteCond %{REQUEST_FILENAME} !-f1

RewriteCond %{REQUEST_FILENAME} !-f8

Thay đổi đuôi đường dẫn

Khi truy cập vào một số trang web, bạn hay thấy có các đuôi mở rộng như: .php, .html… Điều này không ảnh hưởng gì lớn đến SEO nhưng bỏ đi sẽ nhìn chuyên nghiệp hơn, url trở nên ngắn gọn hơn. Hoặc nếu bạn muốn hiển thị đuôi .html cho đẹp hơn, hãy làm theo cách sau:

  • Bỏ đuôi .php khỏi đường dẫn
    RewriteCond %{REQUEST_FILENAME} !-f9
  • Bỏ đuôi html khỏi đường dẫn
    RewriteCond %{REQUEST_FILENAME} !-d0
  • Đưa từ khóa chính của sản phẩm lên Url

Một SEOer chuyên nghiệp phải biết khéo léo đưa từ khóa chính lên trên URL.Tôi lấy một ví dụ: tenmien.com/product.php?id=12. Giờ bạn muốn đổi nó lại thành: tenmien.com/product/ipod-nano/12.html, bạn làm như sau:

RewriteCond %{REQUEST_FILENAME} !-d1

RewriteCond %{REQUEST_FILENAME} !-d2

  • Đổi đuôi .php sang đuôi .html vào đường dẫn
    RewriteCond %{REQUEST_FILENAME} !-d3

Tạo chuyển hướng 301 cực mạnh

Khi bạn muốn chuyển hướng toàn bộ website cũ sang website mới, hoặc chuyển hướng bài viết cũ sang bài viết mới thì redirect 301 là một phương án được coi là tối ưu nhất. Chuyển hướng 301 vừa giúp cho bạn điều hướng url không mất dữ liệu mà kết quả tìm kiếm của google vẫn được đảm bảo. Để thực hiện điều này, bạn làm theo hướng dẫn sau:

  • Để chuyển toàn bộ tên miền:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d5

 

  • Để chuyển 1 trang cụ thể: ví dụ bạn cần chuyển một bài cũ là: http://tenmien.com/danh-muc-cu/bai-viet-cu.htm sang bài mới là: http://tenmien.com/bai-viet-moi.htm, bạn thêm đoạn code sau:

 

RewriteCond %{REQUEST_FILENAME} !-d6

Bật tính năng nén Gzip

Tính năng này giúp tài nguyên website của bạn sẽ nén lại trên server trước khi gửi đến người dùng. Qua đó giúp cho quá trình tải trang được nhanh hơn. Thực hiện thêm đoạn code sau vào .htaccess:

RewriteCond %{REQUEST_FILENAME} !-d7

RewriteCond %{REQUEST_FILENAME} !-d8

RewriteCond %{REQUEST_FILENAME} !-d9

RewriteRule . /index.php [L]0

RewriteRule . /index.php [L]1

RewriteRule . /index.php [L]2

RewriteRule . /index.php [L]3

RewriteRule . /index.php [L]4

RewriteRule . /index.php [L]5

RewriteRule . /index.php [L]6

RewriteRule . /index.php [L]7

RewriteRule . /index.php [L]8

RewriteRule . /index.php [L]9

# END WordPress0

# END WordPress1

# END WordPress2

RewriteCond %{REQUEST_FILENAME} !-d7

# END WordPress4

# END WordPress5

# END WordPress6

# END WordPress7

# END WordPress8

# END WordPress9

RewriteEngine On0

# END WordPress7

RewriteEngine On2

RewriteEngine On3

RewriteEngine On4

# END WordPress7

RewriteEngine On6

RewriteEngine On7

RewriteEngine On8

RewriteEngine On9

RewriteBase /0

RewriteBase /1

RewriteBase /2

RewriteBase /3

RewriteBase /4

RewriteBase /5

RewriteBase /6

RewriteBase /7

RewriteBase /8

RewriteBase /9

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]0

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]1

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]2

# END WordPress2

Sau khi bật nén xong, bạn có thể vào công cụ PageSpeed Insights của google để xem tính năng này đã được bật trên website của bạn chưa.

Must-revalidate là gì

Xem thêm: GZIP trong Joomla

Bảo mật file wp-config trên wordpress

File wp-config.php là một file rất quan trọng trong nền tảng WordPress. File này chứa các thông tin bao gồm: Database, localhost, username. password…. Bạn có thể bảo mật file này bằng cách đặt mật khẩu cho nó qua đoạn code sau:

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]4

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]5

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]6

RewriteCond %{REQUEST_FILENAME} !-f8

Chuyển hướng http sang https và ngược lại

  • Để chuyển http sang https, bạn chèn code này vào .htaccess như sau:
    RewriteCond %{REQUEST_FILENAME} !-d1

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]9

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]0

Note: file .htaccess chỉ được tồn tại 1 dòng RewriteEngine on mà thôi. nếu như đã có rồi thì bạn không cho vào nữa nhé.

  • Để chuyển ngược lại:
    RewriteEngine On

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]2

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]3

Cấm ip truy cập vào trang web của bạn

Đôi khi bạn thấy các ip truy cập vào web của bạn một cách “ quá đà ” , đốt sạch dung lượng băng thông của bạn. Hay nói chính xác là mấy thằng spam vào web bạn. Đã có cách giải quyết như sau:

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]4

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]5

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]6

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]7

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]8

Nếu như muốn chặn 1 dải IP, làm như sau:

RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]9

RewriteRule ^index.php$ – [L]00

RewriteRule ^index.php$ – [L]01

RewriteRule ^index.php$ – [L]02

Các thông số IP các bạn thay bằng IP xác định spam web của bạn.

Bạn có thể chống lại việc bị bandwidth bằng cách thêm đoạn code sau:

RewriteCond %{HTTP_REFERER} !^http://(www.)?tenmien.com(/)?.*$      [NC]

RewriteCond %{HTTP_REFERER} !^http://(www.)?chophep.tenmien.com(/)?.*$      [NC]

RewriteRule .*.(gif|jpg|jpeg|bmp|png|js|css|html|htm)$ http://tenmien.com/images/canhbao.png [R,NC]

Phần màu hồng nghĩa là cho phép bạn đặt nhiều domain. Bạn có thể ghi địa chỉ trang domain của mình và các trang domain cho phép dùng chung.

Phần màu lục là phần mở rộng của tập tin mà bạn muốn không bị hotlink.

Phần màu lam là ảnh bạn thiết kế ra để tạo ra thông báo hiển thị nếu có website khác đặt hotlink.

Chọn trang mặc định

Thông thường các hosting sẽ mặc định chạy các trang như: index.html, home.html, index.php… Tuy nhiên nếu bạn muốn set lại trang khác làm trang mặc định? Đơn giản thôi!

Hãy thêm đoạn code này vào:

RewriteRule ^index.php$ – [L]03

Với default là tên của trang mặc định.

Chuyển đổi thư mục này sang thư mục khác

Bạn có 1 Url là: https://seongon.com/seo-len-dinh và bạn muốn chuyển nó thành https://seongon.com/dich-vu-seo. Hãy thực hiện thêm đoạn code này vào .htaccess:

RewriteRule ^index.php$ – [L]04

Khi bạn mở một link từ facebook, bạn có thấy url nó thêm đoạn ?fbclid=abcxyz… không ? Tôi sẽ chỉ cho bạn cách xóa cái đuôi loằng ngoằng đó. Thực ra thì làm việc này hay không cũng không sao cả,chẳng ảnh hưởng gì đến việc SEO đâu! Chẳng qua muốn copy Url mang đi đâu đó nhìn đỡ dài và đỡ nhầm thôi!
RewriteBase /

RewriteRule ^index.php$ – [L]06

RewriteRule ^index.php$ – [L]07

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

Xóa một phần tử trong đường dẫn

Cái này hay ho này! Bạn có một url như sau: https://seongon.com/seo/8-cong-cu-nghien-cu-tu-khoa-mien-phi.html

và bạn muốn xóa cái thằng danh mục seo cho nó ngắn gọn hơn thành: https://seongon.com/8-cong-cu-nghien-cu-tu-khoa-mien-phi.html mà không muốn bị ảnh hưởng gì ? Cách làm như sau:

RewriteRule ^index.php$ – [L]11

Done !

Chuyển hướng AMP khi không dùng nữa

Công cụ AMP của google cho phép web của bạn load nhanh như gió trên các thiết bị di động. Nhưng nếu như bạn không sử dụng nữa và tắt plugin đi thì các url của bạn chưa đưa về trang đích ngay đâu, mà phải làm thế này: