Công ty thiết kế website chuẩn SEO Web Mới
Tìm kiếm
Công ty thiết kế website chuẩn SEO Web Mới

File .htaccess là gì? Chi tiết về File .htaccess

File .htaccess là gì? Đó là một file kiểm soát cách mà máy chủ web xử lý yêu cầu từ trình duyệt web, các thao tác như chuyển hướng trang, bảo mật, xác thực người dùng, định dạng URL.

 File .htaccess là gì? Chi tiết về  File .htaccess

File .htaccess là gì? Chi tiết về File .htaccess

Mục Lục [Ẩn]


File .htaccess là gì?

Đó là một file được cấu hình để điều chỉnh và kiểm soát cách mà máy chủ web xử lý yêu cầu từ trình duyệt web.

File .htaccess (HyperText Access) được đặt trong thư mục gốc của trang web và có thể chứa các cú pháp cho các thao tác như chuyển hướng trang, bảo mật, xác thực người dùng, định dạng URL…

File này được viết bằng ngôn ngữ Apache mod_rewrite, có sẵn trên hầu hết các máy chủ web Apache, là một phần quan trọng của nền tảng web Apache. Có hiệu lực trên các máy chủ web sử dụng Apache và không hoạt động trên các máy chủ web khác như Nginx hay IIS.

File .htaccess nằm ở thư mục gốc của source web.

File .htaccess dùng để làm gì?

Thay tên miền webmoi.vn bằng tên miền của bạn với các đoạn code ở dưới:

Thêm www vào domain

RewriteEngine On
DirectoryIndex index.php
RewriteCond %{HTTP_HOST} ^webmoi.vn [NC]
RewriteRule ^(.*)$ https://www.webmoi.vn/$1 [L,R=301]

Bỏ www ra khỏi domain

RewriteEngine On
DirectoryIndex index.php
RewriteCond %{HTTP_HOST} ^www.webmoi.vn [NC]
RewriteRule ^(.*)$ https://webmoi.vn/$1 [L,R=301]

Cấu hình https cho website

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Redirect đến trang thông báo lỗi riêng với file .htaccess

Website có nhiều lỗi như: 401, 403, 404, 500 … là các lỗi phổ biến, nếu không redirect nó sẽ trả về trình duyệt của người dùng một thông báo rất xấu xí, không chuyên nghiệp và tạo cảm giác khó chịu khi bị lỗi, bạn có thể dùng file .htaccess để chuyển hướng đến trang thông báo lỗi

ErrorDocument 400  https://webmoi.vn/
ErrorDocument 401  https://webmoi.vn/
ErrorDocument 403  https://webmoi.vn/
ErrorDocument 404  https://webmoi.vn/404.html
ErrorDocument 500  https://webmoi.vn/

Xem thêm bài viết:

Lỗi 400 Bad Request

Lỗi 401 Unauthorized

Lỗi 403 Forbidden

Lỗi 404 Not Found

Lỗi 500 Internal Server Error từ mã trạng thái HTTP

Cài đặt 301 Redirect với file .htaccess

Chuyển hướng link cũ đã có trafic về link mới.

RewriteRule ^xay-dung-landingpage-de-thu-hut-khach/$  https://webmoi.vn/landing-page-la-gi/ [L]

Xem thêm bài viết: Redirect 301 là gì?

Chuyển .php sang .html (link không .php) trong url

RewriteRule ^([a-zA-Z0-9_-]+)/$	index.php?com=$1 [L]

Ví dụ link đã chuyển hướng về là https://webmoi.vn/file-htaccess-la-gi/, nếu cần đổi thảnh .html thì bạn đổi ([a-zA-Z0-9_-]+)/ thành ([a-zA-Z0-9_-]+).html

Cấm IP truy cập vào site

allow from all 
deny from 193.128.14.12

Giới hạn dung lượng file Upload

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

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

  RewriteEngine On

  RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]

  RewriteCond %{HTTP_HOST} ^www.olddomain.com$

  RewriteRule (.*)$ https://www.newdomain.com/$1 [R=301,L]

Tham khảo file hoàn chỉnh của 1 trang web

RewriteEngine On
DirectoryIndex index.php
RewriteCond %{HTTP_HOST} ^www.webmoi.vn [NC]
RewriteRule ^(.*)$ https://webmoi.vn/$1 [L,R=301]
ErrorDocument 400  https://webmoi.vn/
ErrorDocument 401  https://webmoi.vn/
ErrorDocument 403  https://webmoi.vn/
ErrorDocument 404  https://webmoi.vn/404.html
ErrorDocument 500  https://webmoi.vn/
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule index.html$ index.php
RewriteRule rss.xml$ rss.php

#ĐĂNG NHẬP - ĐĂNG KÝ
RewriteRule ^dang-nhap.html$	index.php?com=dang-nhap&act=login [L]
RewriteRule ^thoat.html$	index.php?com=dang-nhap&act=logout [L]
RewriteRule ^quen-mat-khau.html$	index.php?com=dang-nhap&act=quen-mat-khau [L]
RewriteRule ^thong-tin-ca-nhan.html$	index.php?com=dang-nhap&act=user-info [L]
RewriteRule ^doi-mat-khau.html$	index.php?com=dang-nhap&act=doi-mat-khau [L]


#SƠ ĐỒ TRANG
#RewriteRule site-map.xml$ site.php
RewriteRule sitemap.xml$ site.php

#ADMIN ---------------------
RewriteRule ^quantri$ quantri/index.php?com=user&act=login [L]
RewriteRule ^quantri/$ quantri/index.php?com=user&act=login [L]

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^(.*)(?:^|&)fbclid=(?:[^&]*)((?:&|$).*)$ [NC]
RewriteCond %1%2 (^|&)([^&].*|$)
RewriteRule ^(.*) /$1?%2 [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^(.*)(?:^|&)zarsrc=(?:[^&]*)((?:&|$).*)$ [NC]
RewriteCond %1%2 (^|&)([^&].*|$)
RewriteRule ^(.*) /$1?%2 [R=301,L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^(.*)(?:^|&)gidzl=(?:[^&]*)((?:&|$).*)$ [NC]
RewriteCond %1%2 (^|&)([^&].*|$)
RewriteRule ^(.*) /$1?%2 [R=301,L]
</IfModule>
RewriteRule ^([a-zA-Z0-9_-]+)//$	https://webmoi.vn/$1/ [L]
RewriteRule ^([a-zA-Z0-9_-]+)$	https://webmoi.vn/$1/ [L]

#RewriteRule ^([a-zA-Z0-9_-]+)$	index.php?com=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/$	index.php?com=$1 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/p=([0-9]+)$	index.php?com=$1&p=$2 [L]

RewriteRule ^thumb/([0-9]+)x([0-9]+)/([0-9]+)/(.*)$ timthumb.php?w=$1&h=$2&zc=$3&q=99&src=https://%{HTTP_HOST}/$4  [L]
RewriteRule ^upload/images/(.*)$ timthumb.php?w=0&h=0&zc=1&q=99&src=https://%{HTTP_HOST}/upload/images/$1  [L]


#<Ifmodule !mod_php5.c>
    #AddHandler x-httpd-php52 .php
    #AddHandler x-httpd-php .php


### end content - please not remove this line

###End Kloxo PHP config Area



# Enable Compression
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-font-woff2
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
</IfModule>
<IfModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
  mod_gzip_item_include handler ^cgi-script$
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_exclude mime ^image/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

# Leverage Browser Caching
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 10 days"
  ExpiresByType text/plain "access plus 1 month"
  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 image/svg "access 1 year"
  ExpiresByType text/css "access 1 month"
  ExpiresByType text/html "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 1 month"
</IfModule>
<IfModule mod_headers.c>
  <filesmatch ".(ico|flv|jpg|jpeg|png|svg|gif|css|swf|webp|ttf|woff2)$">
  Header set Cache-Control "max-age=31536000, public"
  </filesmatch>
  <filesmatch ".(html|htm)$">
  Header set Cache-Control "max-age=31536000, private, must-revalidate"
  </filesmatch>
  <filesmatch ".(pdf)$">
  Header set Cache-Control "max-age=31536000, public"
  </filesmatch>
  <filesmatch ".(js)$">
  Header set Cache-Control "max-age=31536000, private"
  </filesmatch>
</IfModule>

Lưu ý khi sử dụng .htaccess

Cần được bảo mật ở mức tối đa, theo một cách nhất định với mục tiêu giúp tránh tình trạng kẻ xấu lợi dụng ảnh hưởng tiêu cực tới website của bạn. Và cách để giúp đề phòng sự cố, trục trặc thì việc lưu lại một file .htaccess được khuyến khích thực hiện trước khi tiến hành việc chỉnh sửa.

Không nắm rõ, hay có những sơ suất dù là nhỏ nhất trong quá trình cấu hình đều có thể khiến website của bạn không hoạt động được, hoặc hoạt động không thực sự lý tưởng, ưng ý như trước đó. Vì vậy, lưu lại file .htaccess cần được hết sức chú ý.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết về  File .htaccess

  • 0 Bình luận
CEO Bùi Tấn Lực
Bùi Tấn Lực
CEO Bùi Tấn Lực người sáng lập ra Web Mới, là một lập trình viên, người viết content, chuyên tư vấn các vấn đề về website và SEO website, quý khách hãy liên hệ để trao đổi thiết kế website
  • Zalo
Chia sẻ nội dung đánh giá của bạn về File .htaccess là gì? Chi tiết về File .htaccess
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Đăng ký tư vấn miễn phí
Tìm hiểu 1 năm không bằng lắng nghe 1 câu tư vấn
Tỉnh thành
0398.259.259