seo offpage

Htaccess là gì? Hướng dẫn cấu hình file htaccess?

Htaccess là gì? Hướng dẫn cấu hình file htaccess?
Trịnh duy thanh
24/02/2022 - 01:56
140

File .htaccess là tệp rất quan trọng đối với trang web. Tuy nhiên, không phải ai cũng biết htaccess là gì, nhất là đối với các bạn mới bước chân vào mảng lập trình và SEO. Vậy tại sao file .htaccess lại quan trọng đến thế? Khi thao tác trên file .htaccess cần chú ý đến những điều gì? Cùng City IT tìm hiểu chi tiết trong nội dung bài viết dưới đây.

Htaccess là gì?

.htaccess là tệp có chức năng thay đổi cấu hình của máy chủ. File htaccess chỉ có tác dụng với các apache web server (máy chủ chạy apache). Nó có thể khởi động hoặc vô hiệu các chức năng web server cung cấp. Cụ thể, một số thao tác file htaccess làm được là chuyển hướng link, thu gọn địa chỉ, cho phép hoặc chặn truy cập,…

tìm hiểu htaccess là gì?
Tìm hiểu khái niệm Htaccess là gì?

File .htaccess chỉ bao gồm phần đuôi định thuộc tính mà không có tên. Do đó, khi cấp quyền quản trị cho file này, đôi khi nó không được hiển thị. Các công cụ trợ giúp viết code phổ biến đều có thể thao tác với file .htaccess. Điểm đặc biệt, htaccess chỉ tuân theo quy tắc RE (Regular Expression). Quy tắc này không dễ nắm bắt nên bạn cần cẩn thận khi chỉnh sửa file .htaccess.

Nếu bạn không thành công, bạn sẽ gặp nhiều lỗi nghiêm trọng khi truy cập web. Trường hợp xấu nhất là web bạn sẽ bị sập. Do đó, bạn cần có một file dự phòng để tránh trường hợp không mong muốn.

Tầm quan trọng của htaccess

  • Tăng độ an toàn: file htaccess tăng tính bảo mật cho WordPress khá tốt. Đặc biệt tại hiện nay, càng có nhiều hacker bắt đầu “cậy khóa” của WordPress.
  • Giải quyết các yêu cầu (request) một cách logic.
  • Cấp quyền chỉnh sửa cho người khác, không phải admin nhưng không ảnh hưởng đến config của apache.
  • Hỗ trợ nơi cấp quyền chủ biên (Hosting) phân chia quyền truy cập cho đọc giả.
  • Tương thích và thích hợp với những web như WordPress.

File .htaccess cho ta một số lợi ích sau

  • Chỉnh sửa trang báo lỗi (error)
  • Phát lệnh cảnh báo bằng hình ảnh thay vì qua văn bản.
  • Phòng và chống trộm dữ liệu
  • Bảo vệ được tính riêng tư của thư mục
  • Tự động tải trang đã được google index
  • Ngăn IP quét vào mục redirect
  • Giúp thêm hoặc xóa cụm WWW. vào thanh địa chỉ
  • Sử dụng HTTPS

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

Làm việc với file htaccess bạn cần lưu ý 3 điều:

  • Tăng độ bảo mật cho .htaccess tối đa. Vì nếu ai đó truy cập vào file này, họ có thể chiếm quyền admin của trang.
  • File htaccess rất quan trọng, nên để không sơ suất xóa file đi thì bạn cần lưu 1 file dự phòng trước khi bắt tay vào chỉnh.
  • Thao tác với htaccess cẩn thận. Vì nếu không, các chương trình và cấu trúc sẽ gặp vấn đề nên sẽ ảnh hưởng không tốt đến trải nghiệm người dùng.

Cách tạo file htaccess

Bạn truy cập thẳng vào folder chứa code của website đó bằng tài khoản quản trị hosting. Thường sẽ là ngay trong thư mục Public_html, đối với các add domain hoặc subdomain thì nó sẽ là folder tương ứng chứa code của website đó, và sau đó tạo file .htaccess với cấu hình như sau:

Tạo file htaccess laravel hoặc các web code thuần

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
    RewriteEngine On
    # Redirect Trailing Slashes…
    RewriteRule ^(.*)/$ /$1 [L,R=301]
    # Handle Front Controller…
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Tạo file htaccess wordpress chuẩn SEO

folder chứa file .htaccess cho wordpress sẽ giống với laravel hay bất cứ loại mã nguồn nào khác nhưng cấu hình mặc định chuẩn của file sẽ 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

Htaccess toàn tập

Dưới đây là những thông tin chi tiết về Htaccess, các bạn cùng tìm hiểu nhé!

Cấu hình file htaccess để tùy chỉnh www và non www

WWW thường xuất hiện trong địa chỉ của các công ty tập đoàn. Nó tạo sự chuyên nghiệp. Để các blog cá nhân, web nhỏ,… cũng có sự chuyên nghiệp này, bạn thực hiện như sau:

// Thêm WWW vào URL
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
// Không theme WWW vào URL
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

Ngoài việc sử dụng file  .htaccess bạn để thêm hoặc bỏ www bằng nhiều cách khác hãy xem hướng dẫn chi tiết tại bài viết:

Hướng dẫn bỏ www trong domain

Chuyển http sang https htaccess

Để hạn chế các User-agent không an toàn, bạn có thể dùng luật của htaccess để kiểm soát. Việc này sẽ điều hướng bạn từ http://mysite.com qua https://mysite.com với điều kiện bạn phải cài kết nối an toàn (SSL).

Để điều khiển lượng truy cập, bạn thêm các mã sau vào file:

#force SSL on entire site
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://mysite.com/$1 [R=301,L]

301 redirect htaccess

Khi chuyển tên domain hay chuyển file, bạn sẽ không muốn ảnh hưởng đến lượt truy cập hoặc thứ hạng trong kết quả tìm kiếm đúng không? Nếu vậy, bạn có thể dùng 301 Redirect trên file .htaccess.

Redirect 301 /old/old.htm http://domain.com/new.htm
// chuyển domain
RewriteEngine On
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L

Redirect đến trang thông báo lỗi riêng

Trong lúc sử dụng web, độc giả rất có thể chạm vào các lỗi 500, 401,… Đây là hiện tượng thường nhật do trang quá tải hay do thiết bị truy cập của khách. Để giảm sự khó chịu, bạn nên thiết kế trang báo lỗi đẹp mắt. Bạn dùng cú pháp sau để điều hướng họ đến trang bạn đã thiết kế.

ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

Sử dụng file .htaccess để Chặn hotlink

Hotlink được gắn với những người đi sao chép hoặc spin bài của người khác. Hotlink giúp họ ký sinh trên web của bạn. Tức họ sử dụng tài nguyên, dữ liệu trong trang của bạn để làm nội dung cho website của họ

Options +FollowSymlinks
#No hotlink
RewriteEngine On
RewriteCond %{HTTP_REFERER}!^$
RewriteCond %{HTTP_REFERER}!^http://(www.)?domain.com/[nc]
RewriteRule .*.(gif|jpg|png)$ http://domain.com/images/nohotlink.gif[nc]

Bỏ đuôi mở rộng của file web “.php”

Khi duyệt web, có phải bạn hiếm khi thấy đuôi .php không? Đây là đuôi thể hiện sự chưa chuyên nghiệp, nên mọi người cố gắng loại bỏ nó đi. Sau đây là cách thức thực hiện:

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

Chuyển .php sang .html trong url

Lý do cần chuyển .php thành .html là để tối ưu SEO, cách đọc đuôi .html cũng “sang” hơn. Một lý do khác, cho người đọc cảm giác an toàn khi nhấp vào link. Vì nếu họ thấy thành phần lạ trong link, họ sẽ chần chừ không nhấp vào.

RewriteRule ^(.*).html$ $1.php [R=301,L]

Tự động thêm / vào cuối url

Thêm “/” vào cuối URL sẽ giúp con bot google nhận diện bài viết của bạn là unique, không copy. Vì vậy tốt cho SEO, google sẽ đánh giá chất lượng web cao hơn.

#Thêm / vào cuối URL
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !#
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]

Chặn ip nước ngoài bằng htaccess

Các user-agent nước ngoài đôi khi spam nội dung, hay bình luận tiêu cực, công kích người khác,… Vì vậy bạn cần loại bỏ những tài khoản này bằng cách

allow from all
deny from 192.168.1.123
deny from 192.168

Bảo vệ file trong host bằng htaccess

Nếu có ai đó muốn bẻ khóa bảo mật, truy cập vào file riêng tư trong trang của bạn, bạn cần thực hiện mã lệnh sau. Kết quả nó sẽ trả về lỗi 403 và đưa tài khoản này trở lại trang chủ.

# Bảo vệ file dùng .htaccess

<files .htaccess=””>
order allow,deny
deny from all
</files>

Đặt password cho file và thư mục

Cách tăng tính bảo mật truyền thống đó là đặt mật khẩu. Để bảo vệ các tệp và thư mục, bạn nên đặt mật khẩu mạnh, tức chứa các ký tự đặc biệt, in hoa, số,…

Để đặt password cho chúng bạn thao tác như bên dưới:

#Đặt Pass cho thư mục
resides
AuthType basic
AuthName “Thư mục này đã được bảo vệ”
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user
# Đặt Pass cho file
<files secure.php=””>
AuthType Basic
AuthName “Prompt”
AuthUserFile /home/path/.htpasswd
Require valid-user
</files>

Chuyển dấu “_” thành “-” trong URL

Thường thì các văn bản dùng dấu “-” sẽ dễ nhìn, đọc và phân tích hơn so với dùng dấu “_”. Hơn nữa, dấu “-” dễ tạo cảm giác thân thuộc hơn nhiều.

Lưu ý: cả hai dấu “-” và “_” đều thay thế dấu cách, không có tính chất khác biệt.

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule !.(html|php)$ – [S=4]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_(.*)$ $1-$2-$3 [E=uscor:Yes]
RewriteRule ^([^_]*)_(.*)$ $1-$2 [E=uscor:Yes]
RewriteCond %{ENV:uscor} ^Yes$
RewriteRule (.*) http://domain.com/$1 [R=301,L]

Không cho truy cập file wp-config.php của WordPress

File wp-config.php nhiều thông tin cơ mật về database username, pass… Để ngăn các tài khoản lạ truy cập vào file này, ta cần nhập mã lệnh như sau:

# Bảo mật file wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>

Giới hạn file Upload

Không phải file nào cũng nên được tải lên web. Nếu bạn không quy định, tất cả các file đều xem là được phép tải, việc này gây tốn tài nguyên, chậm web của bạn rất nhiều.

# Giới hạn đến 10mb
LimitRequestBody 10240000

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

Bật tính năng nén của file Gzip giúp bạn tải dữ liệu một cách trơn tru hơn. Hỗ trợ cải thiện tốc độ làm việc cho web server dễ dàng hơn.

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

Bỏ từ “category” ở URL

Điều chỉnh trực tiếp trên file htaccess để bỏ từ trông có vẻ thiếu chuyên nghiệp “category” có địa chỉ của web đi bằng cách:

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

Dùng .htaccess redirect tên miền cũ qua tên miền mới

Đôi khi bạn không thích tên miền hiện tại, và muốn chuyển qua tên miền (domain) mới. Bạn cần điều hướng tài khoản truy cập domain cũ qua domain mới. Việc này nhằm  không mất lượng traffic và thứ hạng cao trên google mà bạn gầy dựng bấy lâu.

Nếu bạn thao tác chỉnh sửa đúng thì kết quả là bạn sẽ kéo lượng traffic qua cho tên miền mới. Nếu không ngay cả trang miền cũ của bạn cũng sẽ có nguy cơ bị rớt hạng trên kết quả tìm kiếm.

Để điều hướng tài khoản mà không làm thay đổi cấu hình web, bạn cần thực hiện nhập đoạn mã sau vào file htaccess

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
  RewriteCond %{HTTP_HOST} ^www.olddomain.com$
  RewriteRule (.*)$ http://www.newdomain.com/$1 [R=301,L]
</IfModule>

Một số câu hỏi thường gặp về file .htaccess

Làm sao hiện file .htaccess bị ẩn?

Trả lời:

Bạn cần chỉnh sửa file htaccess nhưng không tìm thấy nó. Đấy rất có thể đã bị ẩn đi trong cPanel File Manager. Thực hiện tìm kiếm bằng cách:

Bước 1: Bạn vào mục Settings.

Bước 2: Truy cập vào Show Hidden Files

Bước 3: Click vào mục Save.

Bước 4: Reload trang và kéo xuống bạn sẽ thấy file cần tìm.

Vì sao không thể thay đổi file .htaccess bằng Plugin SEO?

Trả lời:

Lý do bạn gặp vấn đề này rất có thể là nhà cung cấp không cấp quyền truy cập cho bạn nữa. Bạn cần phải tham khảo phương pháp FTP để xử lý.

Kết luận

Qua những thông tin trên có thể thấy .htaccess rất quan trọng. File này sẽ giúp điều chỉnh cấu hình máy chủ để tăng chất lượng quản lý trang web. Với file này, việc bảo mật, cấp quyền và giải quyết các yêu cầu của web sẽ trở nên tối ưu hơn. Hy vọng thông tin trong bài của City IT sẽ giúp cácbạn biết thêm một khái niệm quan trọng đối với SEO web. Nếu bạn còn cập nhật thêm những thông tin hữu ích về công nghệa, hãy theo dõi và đón đọc những bài viết tiếp theo của City IT nhé.

author
Trịnh Duy Thanh
Rate this post
Tôi là Trịnh Duy Thanh, hiện đang là CEO của BKHOST, tôi đang giữ vai trò là giám đốc của công ty kim về các mảng: Mô hình, chiến lược kinh doanh, Bán hàng, Marketing,... Với 25 năm kinh nghiệm làm việc, quản lý và điều hành các công ty Việt Nam của các tập đoàn đa quốc gia hàng đầu thế giới: ABB, Tetra Park, Metller Toledo, ProMinent,... thì tôi hy vọng có thể giúp một phần nào đó trong công việc kinh doanh của các bạn thông qua những bài chia sẻ của mình.
Bài viết liên quan
Bình luận