NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
15/05/2023
Lượt xem

Hướng dẫn chuyển hướng www đến Non-www với Apache trên Centos 7

15/05/2023
13 phút đọc
Lượt xem

Đánh giá

5/5 - (96 bình chọn)

Nhiều web developer cần cho phép người dùng truy cập vào trang web hoặc ứng dụng của họ thông qua cả subdomain www và domain gốc (non-www). Khi truy cập vào www.my-website.vietnixhosting.netmy-website.vietnixhosting. thì người dùng đều có những trải nghiệm như nhau. Cách tốt nhất cho SEO là chọn domain mà bạn muốn ưu tiên, sau đó cho web server chuyển hướng người dùng truy cập đến domain ưu tiên đó. Trong bài viết hướng dẫn về cách chuyển hướng www đến Non-www với Apache trên Centos 7 này, bạn sẽ được hướng dẫn cấu hình chuyển hướng 301 bằng Apache trên CentOS 7.

Tổng quan về chuyển hướng www đến Non-www với Apache trên Centos 7

Có nhiều loại chuyển hướng HTTP nhưng bạn nên sử dụng chuyển hướng 301. Khi chuyển hướng client sẽ được thông báo: “The website you have requested has permanently moved to another URL. Go there instead.” Khi nhận được mã phản hồi HTTP 301 từ máy chủ, trình duyệt sẽ gửi yêu cầu thứ hai đến URL mới được cung cấp bởi máy chủ. Trang web sẽ được hiển thị và người dùng thậm chí không nhận ra rằng đã được chuyển hướng.

Tổng quan về chuyển hướng www đến Non-www với Apache trên Centos 7
Tổng quan về chuyển hướng www đến Non-www với Apache trên Centos 7

Vậy tại sao không cấu hình web server chỉ phục vụ một trang web cho các yêu cầu đến từ cả hai tên miền? Khi làm vậy thì lợi ích SEO khi chuyển hướng 301 không được phát huy. Chuyển hướng vĩnh viễn cho các công cụ tìm kiếm biết rằng web của bạn có duy nhất một vị trí và sẽ cải thiện xếp hạng tìm kiếm của URL đó. 

Chuẩn bị để chuyển hướng www đến Non-www với Apache trên Centos 7

Để thực hiện các bước trong bài viết này, bạn cần có:

  • Quyền quản trị viên Superuser trên máy chủ đang chạy Apache.
  • Apache đã được cài đặt và cấu hình để phục vụ trang web của bạn.
  • Một tên miền. Nếu chưa có tên miền, bạn có thể liên hệ Vietnix để được tư vấn đăng ký tên miền phù hợp với nhu cầu của bạn.
Đăng ký mua tên miền tại Vietnix
Đăng ký mua tên miền tại Vietnix

Bước 1: Cấu hình bản ghi DNS

Đầu tiên, bạn cần chỉ định cả www.my-website.vietnixhosting.net my-website.vietnixhosting.net đến máy chủ chạy Apache. Trong bài viết giả sử tên miền của bạn là my-websit.vietnixhosting.net. Bạn hãy hay thế bằng tên miền của mình khi nào bạn thấy ở dưới. Tiếp theo, tạo một bản ghi DNS A cho mỗi tên chỉ định đến địa chỉ IP máy chủ Apache của bạn.

Mở web control panel của nhà cung cấp DNS của bạn. Bài viết này sử dụng Vietnix DNS.

Trong form Quản lý Domain, nhấn vào nút + màu xanh bên phải để tiến hành nhập tên miền đã đăng ký vào các trường thông tin.

Form quản lý domain
Form quản lý domain

Trong ví dụ này: Domain đầy đủ là www.my-website.vietnixhosting.net cùng với my-website.vietnixhosting.net và cả hai đều sẽ trỏ về IP là 150.81.136.144.

Trang mới của tên miền sẽ được đưa ra. Đây là nơi bạn có thể xem, thêm và xóa các bản ghi cho tên miền. Ở bản DNS record thứ hai, người dùng vẫn có thể thay A record bằng CNAME record, là alias chỉ định đến một cái tên khác thay vì là trỏ về IP. Bạn có thể tạo CNAME record để chỉ định www.my-website.vietnixhosting.net đến my-website.vietnixhosting.net. Bất kỳ yêu cầu HTTP nào cho subdomain www sẽ đều đi đến máy chủ vì bạn vừa tạo bản ghi A cho tên miền gốc. Nhưng để đơn giản, bạn chỉ cần tạo một bản ghi A khác giống như bản ghi đầu tiên.

Khi bạn đã tạo cả hai bản ghi thì kết quả sẽ trông giống như sau:

Giao diện bảng quản lý DNS
Giao diện bảng quản lý DNS

Sau khi có hai bản ghi, các request cho my-website.vietnixhosting.netwww.my-website.vietnixhosting.net đều sẽ đến máy chủ Apache của bạn. Bước tiếp theo, bạn sẽ thực hiện cấu hình máy chủ.

Nếu bạn đang cần một máy chủ VPS Centos 7 để cài đặt Apache, thì Vietnix là một trong những địa chỉ đáng tin cậy mà bạn có thể tham khảo. Vietnix cung cấp cho khách hàng nhiều gói dịch vụ VPS khác nhau với nhiều tính năng và giá cả phù hợp với nhu cầu của từng khách hàng. Bao gồm: Cloud Server, VPS Giá Rẻ, VPS Cao Cấp, VPS NVMe.

Một số tính năng nổi bật của VPS Vietnix:

  • Tốc độ cao, ổn định.
  • Backup tự động 1 tuần/lần.
  • Hỗ trợ đa dạng hệ điều hành, trong đó có hệ điều hành Centos 7.
  • Toàn quyền quản trị, giao diện đơn giản.
  • Không giới hạn Data Transfer.

Đặc biệt, khi thuê VPS tại Vietnix, bạn sẽ được tặng bộ theme & plugin WordPress trị giá đến 50.000.000 VND.

Liên hệ ngay với Vietnix để được hỗ trợ tư vấn lựa chọn gói VPS phù hợp với bạn.

Bước 2: Cấu hình chuyển hướng trong Apache

Apache Web Server cung cấp hai module để giúp bạn có thể cấu hình chuyển hướng: mod_aliasmod_rewrite. Mod_rewrite hoạt động mạnh mẽ hơn còn mod_alias dễ hiểu và dễ sử dụng hơn. Nếu bạn cần chuyển hướng các request chứa chuỗi truy vấn hoặc tiêu đề HTTP cụ thể thì nên sử dụng mod_rewrite.

Đối với trường hợp chuyển hướng các yêu cầu của www.my-website.vietnixhosting.net đến my-website.vietnixhosting.net thì mod_alias sẽ làm được tốt. Apache khuyến khích chọn mod_alias khi có thể. Việc chọn mod_rewrite khi không cần thiết dẫn đến cấu hình bị rối, dễ bị hỏng và khó bảo trì.

Module alias mặc định được kích hoạt trên CentOS 7. Để kiểm tra lại xem module đã được kích hoạt chưa bạn hãy chạy lệnh này:

httpd -M | grep alias_module

Nếu xuất hiện alias_module (shared) trong output thì tức là module đã được bật sẵn. Nếu module chưa được bật, bạn hãy thêm dòng sau vào /etc/httpd/conf.modules.d/00-base.conf:

echo “LoadModule alias_module modules/mod_alias.so” | sudo tee -a /etc/httpd/conf.modules.d/00-base.conf

Khi mod_alias đã được bật, bạn có thể sử dụng các chỉ thị Redirect, RedirectMatch và các chỉ thị khác được liệt kê ở mod_alias docs trong cấu hình Apache.

Tiếp theo, bạn hãy cấu hình VirtualHosts.

Trong bước chuẩn bị, bạn đã cấu hình website của mình trong Apache. Trang web thể được cấu hình trong file cấu hình chính của Apache (/etc/httpd/conf/httpd.conf) hoặc file riêng (ví dụ: /etc/httpd/conf.d/my-website.vietnixhosting.net.conf). Bạn hãy mở file đó trong trình soạn thảo vi hoặc bất cứ trình soạn sảo nào. Nếu muốn sử dụng nano, bạn có thể cài đặt bằng lệnh yum install nano:

sudo vi /etc/httpd/conf/httpd.conf

Hãy tìm kiếm các chỉ thị ServerAlias được đặt trong VirtualHost. Nếu bạn tìm thấy một dòng có ServerAlias được đặt thành www.my-website.vietnixhosting.net thì hãy xóa dòng đó. Nếu dòng đó chứa nhiều alias trong danh sách được phân tách bằng dấu phẩy thì chỉ xóa my-website.vietnixhosting.net khỏi danh sách. Cần xóa bỏ alias này vì bạn sẽ tạo một VirtualHost riêng biệt phân miền chỉ chứa ServerNameRedirect. VirtualHost chính cho trang web sẽ không còn phục vụ yêu cầu cho www.my-website.vietnixhosting.net.

Bây giờ hãy tạo VirtualHost trong một file (ví dụ: /etc/httpd/conf.d/www.my-website.vietnixhosting.net.conf):

sudo vi /etc/httpd/conf.d/www.my-website.vietnixhosting.net.conf

Dán nội dung bên dưới vào file, thay www.my-website.vietnixhosting.net bằng tên miền của bạn:

<VirtualHost *:80>
        ServerName www.my-website.vietnixhosting.net
        Redirect permanent / http://www.my-website.vietnixhosting.net/
</VirtualHost>

Lưu và thoát file sau khi hoàn tất. Nếu bạn đã tạo file này trong /etc/httpd/sites-available, hãy tạo một symlink đến file đó trong /etc/httpd/sites-enabled/:

sudo ln -s /etc/httpd/sites-available/www.my-website.vietnixhosting.net.conf /etc/httpd/sites-enabled/

VirtualHost mới này cấu hình Apache gửi một chuyển hướng 301 cho máy khách nào yêu cầu www.my-website.vietnixhosting.net và chỉ định họ truy cập thay thế vào www.my-website.vietnixhosting.net. Mọi yêu cầu đến http://www.my-website.vietnixhosting.net/login.php sẽ được chuyển hướng đến http://my-website.vietnixhosting.net/login.php.

Lưu ý: Nếu ServerAlias của VirtualHost chính của trang web chứa một subdomain đại diện – *.my-website.vietnixhosting.net. Bạn nên xem xét loại bỏ subdomain đó và tạo một VirtualHost mới giống như VirtualHost bạn vừa tạo cho mỗi subdomain bạn muốn chuyển hướng.

Nếu bạn không muốn chuyển hướng tất cả các subdomain và cần một số subdomain được phục vụ bởi VirtualHost chính. Bạn nên chỉ định tên cụ thể của mỗi subdomain là một alias. Đặc biệt, bây giờ bạn có một subdomain và yêu cầu của nó không được phục vụ bởi VirtualHost chính. Bạn có thể đặt tên cho mỗi subdomain trên một dòng ServerAlias riêng hoặc đặt tên cho tất cả chúng trên một dòng ServerAlias. Các tên được phân tách bằng dấu phẩy.

Nếu phải giữ lại ServerAlias cho *.my-website.vietnixhosting.net, bạn cần đảm bảo Apache tải VirtualHost www mới trước VirtualHost chính. Apache sẽ sử dụng VirtualHost chính được tải trước để xử lý các yêu cầu cho www.my-website.vietnixhosting.net vì tên này phù hợp với alias đại diện. Chạy lệnh sau để xem VirtualHost nào sẽ được tải trước khi bạn khởi động lại Apache:

httpd -S

Tìm các dòng chứa namevhost my-website.vietnixhosting.netnamevhost www.my-website.vietnixhosting.net. Nếu dòng www xuất hiện trước thì có nghĩa là VirtualHost chính được tải trước. Tuy nhiên, nếu VirtualHost cho domain gốc xuất hiện trước, có một số cách sau để Apache tải VirtualHost www trước:

  1. Nếu VirtualHost chính của bạn được chứa trong file (ví dụ: /etc/httpd/conf/httpd.conf), hãy sử dụng Include hoặc IncludeOptional để inlude thư mục chứa VirtualHost www mới của bạn. Bạn chỉ cần di chuyển dòng Include đó lên trên VirtualHost chính trong file.
  2. Nếu VirtualHost chính và VirtualHost www mới của bạn được chứa trong cùng một thư mục (ví dụ: /etc/httpd/conf.d/). Bạn có thể buộc Apache tải VirtualHost www trước bằng cách đổi tên các file và đặt một số đứng trước tên file. Thêm tiền tố 01- vào tên file của VirtualHost www (ví dụ: /etc/httpd/conf.d/01-www.my-website.vietnixhosting.net.conf) và 02- vào tên file của VirtualHost chính (ví dụ: /etc/httpd/conf.d/02-my-website.vietnixhosting.net.conf).

Chạy httpd -S một lần nữa  để đảm bảo Virtualhost www xuất hiện đầu tiên.

Khi đã sẵn sàng, bạn hãy khởi động lại Apache:

sudo systemctl restart httpd

Trước khi truy cập vào www.my-website.vietnixhosting.net trên trình duyệt, bạn hãy thực hiện một request bằng curl trên máy chủ hoặc máy của bạn (nếu đã cài đặt curl):

curl -IL http://www.my-website.com

Tùy chọn -I cho biết curl chỉ hiển thị phần header trong phản hồi từ máy chủ. Tùy chọn -L cho biết curl thực theo chuyển hướng từ máy chủ bằng cách tự động thực hiện yêu cầu thứ hai. Lần này chuyển hướng đến URL được cung cấp trong phần Location header (giống như trình duyệt web). Vì bạn đã cấu hình chuyển hướng 301, curl sẽ thực hiện hai yêu cầu và bạn sẽ chỉ nhìn thấy phần header của hai phản hồi:

Output
HTTP/1.1 301 Moved Permanently
Date: Tue, 03 Jan 2023 19:24:44 GMT
Server: Apache/2.4.53
Location: http://my-website.vietnixhosting.net/
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 200 OK
Date: Tue, 03 Jan 2023 19:24:44 GMT
Server: Apache/2.4.53
Last-Modified: Thu, 01 Dec 2022 22:10:57 GMT
ETag: "39-5eecb7ed6bfc9"
Accept-Ranges: bytes
Content-Length: 57
Content-Type: text/html; charset=UTF-8

Trong phản hồi 301 (Moved Permanently) theo yêu cầu ban đầu cho http://www.my-website.vietnixhosting.net và trong header gần cuối cùng có thông tin Location: http://my-website.vietnixhosting.net. Phản hồi thứ hai từ request theo sau curl. Nếu trang web đang hoạt động tốt, máy chủ sẽ phản hồi với mã trạng thái 200 (OK) để cho biết yêu cầu đã được xử lý thành công.

Cuối cùng, truy cập vào http://www.my-website.vietnixhosting.net trên trình duyệt web của bạn. Trang web của bạn sẽ xuất hiện như thường lệ. Nhưng trong thanh địa chỉ, phần “www” đã bị thiếu khỏi URL. Hầu hết người dùng sẽ không bao giờ để ý phần này. Vì vậy người dùng sẽ có cùng trải nghiệm như nếu họ yêu cầu http://my-website.vietnixhosting.net.

Vietnix là một trong những nhà cung cấp dịch vụ tên miền, hosting, VPS tốc độ cao uy tín top đầu tại Việt Nam. Được thành lập từ năm 2012, Vietnix đã và đang đồng hành cùng 50.000+ khách hàng trong lẫn ngoài nước như iVIVU.com, Vietnamwork, UBGroup, KINGFOOD, GTV,.. với các dịch vụ chất lượng cao và chi phí hợp lý.

Luôn nỗ lực không ngừng nghỉ để mang đến cho khách hàng những dịch vụ tốc độ cao và ổn định, Vietnix đã được vinh danh bởi giải thưởng Thương hiệu Việt Nam xuất sắc 2022, hạng mục Sản phẩm dịch vụ xuất sắc.

Nếu bạn đang cần tìm một địa chỉ cung cấp dịch vụ hosting, VPS tốc độ cao và uy tín, Vietnix là một sự lựa chọn đáng cân nhắc. Bạn có thể liên hệ trực tiếp với Vietnix để được tư vấn và hỗ trợ chi tiết.

Thông tin liên hệ của Vietnix như sau:

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
  • Hotline: 1800 1093 – 07 088 44444
  • Email: sales@vietnix.com.vn

Lời kết

Trong bài viết về cách chuyển hướng www đến Non-www với Apache trên Centos 7 này, bạn đã biết cách thêm hai bản ghi DNS cho trang web của mình và cấu hình Apache để chuyển hướng một tên miền phụ đến tên miền ưu tiên của bạn. Bây giờ trang web của bạn có thể truy cập được thông qua cả hai tên miền. Hy vọng thông qua bài viết, trang web của bạn sẽ tiếp cận được nhiều người dùng và được nâng cao thứ hạng trong kết quả tìm kiếm.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG