Kiểm tra các module thông dụng của hosting mod_deflate và mod_rewrite

1. Mục đích
Trong bài viết này cung cấp cho bạn cách kiểm tra hai module thông dụng trên hosting là mod_deflate và mod_rewrite và cách cấu hình htaccess để sử dụng hai module thông dụng trên.
2. Cách kiểm tra hai module mod_deflate và mod_rewrite
a. Mod_deflate
Module mod_deflate cho phép Apache web server nén dữ liệu trước khi gửi lại cho trình duyệt. Việc nén dữ liệu giúp tăng tốc độ truy cập vào website và giảm băng thông truy cập. Mô hình khi người dùng truy cập vào website:
– Đầu tiên trình duyệt gửi yêu cầu đến web server, web server sẻ xử lý và trả về nội dung cho trình duyệt.
– Trình duyệt sau khi nhận được nội dung từ web server (100KB) sẽ hiển thị nội dung website cho người dùng.
Mô hình khi có nén dữ liệu:
Trước khi gửi dữ liệu lại cho trình duyệt thì web server thực hiện nén dữ liệu (10KB). Việc nén dữ liệu làm giảm kích thước của website do đó website của bạn sẽ được tải nhanh hơn đồng thời tiết kiệm băng thông cho bạn. Mặc địnhmod_deflate đã được bật trên các server hosting của VinaHost. Để sử dụng module này bạn vui lòng thao tác như sau:
– Trên thư mục gốc của website bạn (public_html) bạn tạo file .htaccess với nội dung như sau:
# Restrict compression to these MIME types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
Các dòng trên thực hiện nén các file text, html, xml, css, javascript trên web server.
– Sau khi thực hiện cấu hình file .htaccess bạn vui lòng xóa cache trình duyệt và truy cập để kiểm tra. bạn có thể dùng công cụ Developer Tool trên trình duyệt Chrome để kiểm tra.
Sau đây là so sánh khi không sử dụng và có sử dụng mod_deflate
+ Không sử dụng mod_deflate:
+ Có sử dụng mod_deflate:

bạn có thể thấy dữ liệu đã được nén từ 2KB xuống thành 875B. Kiểm tra trong phần header nếu có dòng Content-Encoding: gzip thì bạn đã cấu hình thành công.
Ngoài ra bạn có thể kiểm tra online tại: http://checkgzipcompression.com/ . Một ví dụ khi kiểm tra tại site này.
b. Mod_rewrite
Rewrite URL được hiểu là viết lại (rewrite) đường dẫn của website (url) của bạn cho đẹp, cho dễ nhớ và thân thiện với công cụ tìm kiếm. Để rewrite url trên web server của bạn phải hỗ trợ module mod_rewrite. Hiện tại các server củaVinaHost đều hỗ trợ module này. bạn có thể kiểm tra như sau:
– bạn tạo file .htaccess trong thư mục gốc của website (public_html):
RewriteEngine on
RewriteBase /
RewriteRule ^testing.php$ modrewrite.php
Trong đó:
+ Hai dòng đầu dùng để bật RewriteEngine
+ Dòng cuối là dòng rule dùng để rewrite lại url
– Tạo hai file testing.php và modrewrite.php với nội dung như sau:
File testing.php :
<?php echo “mod_rewrite does not work”; ?>
File modrewrite.php :
<?php echo “mod_rewrite works”; ?>
– Sau đó bạn truy cập vào http://mydomain.com/testing.php nếu trình duyệt hiển thị nội dung “mod_rewrite works” thì mod_rewrite đã được bật trên hosting của bạn. bạn lưu ý thay thế mydomain.com bằng domain của bạn.
Tùy theo nhu cầu viết lại đường dẫn, mà nội dung của file .htaccess sẽ có nội dung khác nhau. Sau đây là một số ví dụ về rewrite url:
  • sanpham.php?id=01 —> sanpham-01.html
Đây là một ví dụ cực kỳ cơ bản của rewrite url, thường dùng để che dấu đuôi php:
RewriteEngine on
RewriteBase /
RewriteRule ^sanpham-([0-9]+).html$ sanpham.php?id=$1
  • sanpham.php?id=12 —> sanpham/dell-v3400/12.html
Trong ví dụ sau bạn đã rewrite lại đường dẫn với tên sản phẩm của bạn:
RewriteEngine on
RewriteBase /
RewriteRule ^sanpham/([a-zA-Z0-9_-]+)/([0-9]+).html$ sanpham.php?id=$2
  •  Non www URL —> www URL
Nếu bạn muốn người dùng khi truy cập vào domain của bạn ví dụ mydomain.com thi sẻ được chuyển thành www.mydomain.com thì bạn cấu hình như sau:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteRule (.*) http://www.mydomain.com/$1 [R=301,L]
  •  Chuyển domain vào cấp thư mục
Trong quá trình phát triển website luôn luôn có sự thay đổi (về mã nguồn, cơ sở dữ liệu, cấu trúc site,…). Trong quá trình thử nghiệm bạn có thể chạy mã nguồn tại thư mục web bằng cách cấu hình rule sau:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^mydomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mydomain.com$
RewriteCond %{REQUEST_URI} !^/web/
RewriteRule (.*) /web/$1
 
Khi đó khi bạn truy cập vào domain của mình (mydomain.com) thì sẽ chạy dữ liệu website thử nghiệm trong thư mục mydomain.com/web mà không ảnh hưởng đến dữ liệu website gốc. Ngoài ra bạn nên tham khảo thêm về mod_rewrite để viết các rule phù hợp với nhu cầu của bạn.
Tham khảo:
– http://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html
Chúc bạn thành công!

Trả lời


Hotline: +84984330139
SMS: +84984330139 Message facebook Zalo: +84984330139
0984.330.139