.htaccess là gì ? Cách dùng file .htaccess hỗ trợ Onpage toàn tập từ A-Z

Tác giả: Nguyễn Văn Phúc
11 Phút đọc
Ngày đăng: 29/11/2019

Tìm hiểu file .htaccess

File .htaccess 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 đó. .htaccess 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. Xem thêm:

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
.htaccess với host directAdmin
  • Đối với host Cpanel, bạn tìm theo đường dẫn: File manager → Public_html → .htaccess
.htaccess với host Cpanel

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. cách hiển thị tập tin .htaccess

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). tạo file .htaccess 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] Nếu như không muốn dùng www, bạn thêm đoạn code sau: RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^domain.com$ [NC] RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

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: #Đặt Pass cho thư mục resides AuthType basic AuthName "Mục này đã khóa" AuthUserFile /home/path/.htpasswd AuthGroupFile /dev/null Require valid-user # SETUP mật khẩu <files secure.php=""> AuthType Basic AuthName "Prompt" AuthUserFile /home/path/.htpasswd Require valid-user </files>

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 RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
  • Bỏ đuôi html khỏi đường dẫn RewriteRule ^(([^/]+/)*[^.]+)$ /$1.html [L]
  • Đư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: RewriteEngine on RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+).html$ product.php?id=$2
  • Đổi đuôi .php sang đuôi .html vào đường dẫn RewriteRule ^(.*).html$ $1.php [R=301,L]

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

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

 
  • Để 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:
  Redirect 301 /danh-muc-cu/bai-viet-cu.htm http://tenmien.com/bai-viet-moi.htm

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: ## EXPIRES CACHING ## ExpiresActive On ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType text/css "access plus 1 month" ExpiresByType application/pdf "access plus 1 month" ExpiresByType text/x-javascript "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" ExpiresByType application/x-javascript "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" ExpiresByType image/x-icon "access plus 1 year" ExpiresDefault "access plus 2 days" ## EXPIRES CACHING ## # 1 Month for all your static assets Header set Cache-Control "max-age=2592000, public" # 1 DAYS for rss feeds and robots Header set Cache-Control "max-age=86400, public, must-revalidate" # 4 HOURS for your real articles files Header set Cache-Control "max-age=14400, must-revalidate" # compress text, html, javascript, css, xml: AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript AddType x-font/otf .otf AddType x-font/ttf .ttf AddType x-font/eot .eot AddType x-font/woff .woff AddType image/x-icon .ico AddType image/png .png 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. Bật nén gzip với .htaccess 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: order allow,deny deny from all

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: RewriteEngine on

RewriteCond %{HTTPS} !=on [NC]

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

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

RewriteCond %{HTTPS} on

RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

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: ORDER ALLOW,DENY DENY FROM 192.168.1.1 DENY FROM 234.45.67.89 DENY FROM 123.45.67.89 ALLOW FROM ALL Nếu như muốn chặn 1 dải IP, làm như sau: ORDER ALLOW,DENY DENY FROM 192.168. DENY FROM 123.0.0. ALLOW FROM ALL Các thông số IP các bạn thay bằng IP xác định spam web của bạn.

Chống ăn cắp băng thông (hotlink)

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: DirectoryIndex default.html 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: Redirect 301 /seo-len-dinh/https://seongon.com/dich-vu-seo

Xóa tham số facebook( fbclick) khi mở link từ facebook

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 / RewriteCond %{QUERY_STRING} "fbclid=" [NC] RewriteRule (.*) /$1? [R=301,L] 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 ^seo(.+)$ http://127.0.0.1$1 [R=301,L] 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:
  • Đối với các bài viết:
RewriteEngine On RewriteCond% {REQUEST_URI} (. +) / amp (. *) $ RewriteRule ^% 1 / [R = 301, L]
  • Đối với toàn trang:
rewrite ^ / (. *) / amp http://tenmien.com/$1 permanently;

Một số lưu ý khi sử dụng file .htaccess

  • Trong file .htaccess chỉ có duy nhất một dòng RewriteEngine On mà thôi. Thế nên trước khi thêm đoạn code mới nào nhớ Ctr + F để kiểm tra xem có đoạn mã kia chưa rồi hãy thêm nhé!
  • File .htaccess là một file quan trọng, do đó cần phải được bảo mật cẩn thận, tránh để bị người khác vào sửa linh tinh
  • Trước khi chỉnh sửa thêm bớt cái gì, tiến hành tạo backup chép toàn bộ nội dung của thằng .htaccess ra chỗ khác, để nếu sai thì restore lại. File htaccess nếu như cấu hình sai có thể khiến toàn bộ website không hoạt động được hoặc hoạt động không đúng ý.
  • Hết !
Trên đây là những điều bạn cần biết về file .htaccess, và chức năng thần thánh của file. Nếu như bạn không nắm rõ thì đừng ngần ngại liên hệ với SEONGON để được giải đáp tư vấn dịch vụ SEO trang web nhé! Xem thêm một số bài viết để cập nhật thêm những kiến thức SEO cơ bản:
Đánh giá blog
Giám đốc Vận hành SEO
Hơn 10 năm kinh nghiệm nghiên cứu và triển khai SEO đa dạng lĩnh vực, ngành nghề như: Công nghệ, Y dược, Kiến trúc - Xây dựng,... Triển khai 50+…

Bình luận tại đây

Cập nhật những kiến thức mới nhất về SEO, Google Ads & Digital Marketing từ SEONGON

    SEO AIMAX . DIGITAL ADS . TOTAL BUSINESS MAP
    SEO AIMAX . DIGITAL ADS . TOTAL BUSINESS MAP
    SEO AIMAX . DIGITAL ADS . TOTAL BUSINESS MAP

    Hãy để SEONGON

    hiểu hơn về bạn

    SEONGON luôn sẵn sàng lắng nghe và cùng bạn tìm ra giải pháp phù hợp nhất

      This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.