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 cấu hình cấp cao của trang web chạy trên máy chủ web Apache, nó thay đổi được các giá trị được set mặc định của apache bằng cách chỉnh trực tiếp trên file, chi tiết như nào hãy cùng chúng tôi phân tích:

 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ì?

File .htaccess là một file cấu hình cấp cao của trang web chạy trên máy chủ web Apache, nó thay đổi được các giá trị được set mặc định của apache bằng cách chỉnh trực tiếp trên file mà không cần phải chỉnh sửa file cấu hình server, ví trí nằm ở ngay thư mục gốc của bộ source trang web.

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

Bài viết này mình đang để mặc định tên miền webmoi.vn bên mình, hãy thay tên miền này thành tên miền bên bạn:

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

Các lỗi phổ biến trên website như: 401, 403, 404, 500 … 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 nếu không redirect, để chuyển hướng đến trang thông báo lỗi bạn có thể dùng file .htaccess:

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 là gì

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

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 cho nên cần được bảo mật ở mức tối đa. Để tránh trường hợp làm lỗi file mà không khôi phục lại được thì trước khi tiến hành việc chỉnh sửa phải lưu lại một file .htaccess.

Đề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 đó khi 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. Cho nên, lưu lại file .htaccess là rất quan trọng.

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