{"id":1789,"date":"2023-05-21T10:10:32","date_gmt":"2023-05-21T03:10:32","guid":{"rendered":"https:\/\/anhduc.org\/?p=1789"},"modified":"2025-11-01T19:56:43","modified_gmt":"2025-11-01T12:56:43","slug":"cach-chuyen-huong-http-sang-https-va-www-sang-non-www","status":"publish","type":"post","link":"https:\/\/anhduc.org\/?p=1789","title":{"rendered":"C\u00e1ch chuy\u1ec3n h\u01b0\u1edbng HTTP sang HTTPS v\u00e0 www sang non-www"},"content":{"rendered":"<p>Trong qu\u00e1 kh\u1ee9, c\u00e1c trang web th\u01b0\u1eddng kh\u00f4ng \u0111\u01b0\u1ee3c b\u1ea3o m\u1eadt v\u00e0 t\u1ea5t c\u1ea3 c\u00e1c URL \u0111\u1ec1u b\u1eaft \u0111\u1ea7u b\u1eb1ng www. Ng\u00e0y nay, h\u1ea7u h\u1ebft c\u00e1c trang web \u0111\u1ec1u c\u00f3 ch\u1ee9ng ch\u1ec9 b\u1ea3o m\u1eadt SSL v\u00e0 ph\u1ea7n l\u1edbn c\u0169ng lo\u1ea1i b\u1ecf ph\u1ea7n t\u1eed www trong \u0111\u01b0\u1eddng d\u1eabn URL.<\/p>\n<p>Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh s\u1ebd h\u01b0\u1edbng d\u1eabn b\u1ea1n c\u00e1ch chuy\u1ec3n t\u1ea5t c\u1ea3 link HTTP sang HTTPS v\u00e0 www sang non-www<\/p>\n<h2>\u0110\u1ed1i v\u1edbi m\u00e1y ch\u1ee7 APACHE<\/h2>\n<h3>Chuy\u1ec3n h\u01b0\u1edbng t\u1eeb http sang https<\/h3>\n<p>URL m\u1eb7c \u0111\u1ecbnh c\u1ee7a c\u00e1c trang web kh\u00f4ng c\u00f3 ch\u1ee9ng ch\u1ec9 b\u1ea3o m\u1eadt SSL b\u1eaft \u0111\u1ea7u v\u1edbi http:\/\/ c\u00f2n nh\u1eefng trang web c\u00f3 ch\u1ee9ng ch\u1ec9 b\u1eaft \u0111\u1ea7u v\u1edbi https:\/\/.<\/p>\n<p>Tuy nhi\u00ean, c\u00f3 r\u1ea5t nhi\u1ec1u ng\u01b0\u1eddi v\u1eabn s\u1eed d\u1ee5ng http:\/\/ khi nh\u1eadp URL. \u0110\u1ec3 chuy\u1ec3n h\u01b0\u1edbng t\u1ef1 \u0111\u1ed9ng t\u1ea5t c\u1ea3 sang https:\/\/ b\u1ea1n c\u00f3 th\u1ec3 s\u1eeda file .htaccess nh\u01b0 sau:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># 301 REDIRECT HTTP TO HTTPS\r\n&lt;IfModule mod_rewrite.c&gt;\r\nRewriteEngine On\r\nRewriteCond %{HTTPS} off\r\nRewriteRule ^(.*)$ https:\/\/%{HTTP_HOST}%{REQUEST_URI} [L,R=301]\r\n&lt;\/IfModule&gt;<\/pre>\n<p><em>L\u01b0u \u00fd: Sao l\u01b0u l\u1ea1i file .htaccess tr\u01b0\u1edbc khi thay \u0111\u1ed5i B\u1ea4T K\u1ef2 \u0110I\u1ec0U G\u00cc. B\u1ea5t k\u1ef3 l\u1ed7i ch\u00ednh t\u1ea3 n\u00e0o trong t\u1ec7p s\u1ebd l\u00e0m ng\u1eebng ho\u1ea1t \u0111\u1ed9ng trang web c\u1ee7a b\u1ea1n.<\/em><\/p>\n<h3>Chuy\u1ec3n h\u01b0\u1edbng t\u1eeb https sang http<\/h3>\n<p>Trong tr\u01b0\u1eddng h\u1ee3p v\u00ec l\u00fd do n\u00e0o \u0111\u00f3 b\u1ea1n v\u1eabn mu\u1ed1n s\u1eed d\u1ee5ng giao th\u1ee9c http:\/\/, b\u1ea1n c\u00f3 th\u1ec3 s\u1eeda file .htaccess nh\u01b0 sau:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Redirect HTTPS to HTTP\r\n&lt;IfModule mod_rewrite.c&gt;\r\nRewriteEngine On\r\nRewriteCond %{HTTPS} on\r\nRewriteRule (.*) http:\/\/%{HTTP_HOST}%{REQUEST_URI} [R=301,L]\r\n&lt;\/IfModule&gt;<\/pre>\n<h3>Chuy\u1ec3n h\u01b0\u1edbng t\u1eeb www sang non-www<\/h3>\n<p>Khi c\u00e1c trang web m\u1edbi xu\u1ea5t hi\u1ec7n, t\u1ea5t c\u1ea3 c\u00e1c URL \u0111\u1ec1u b\u1eaft \u0111\u1ea7u b\u1eb1ng www (vi\u1ebft t\u1eaft c\u1ee7a World Wide Web). Hi\u1ec7n nay, h\u1ea7u h\u1ebft c\u00e1c trang web \u0111\u00e3 b\u1ecf b\u1edbt www \u0111\u1ec3 URL ng\u1eafn h\u01a1n.<\/p>\n<p>\u0110\u1ec3 chuy\u1ec3n h\u01b0\u1edbng t\u1ea5t c\u1ea3 c\u00e1c li\u00ean k\u1ebft \u0111\u1ebfn trang web t\u1eeb www sang phi\u00ean b\u1ea3n kh\u00f4ng c\u00f3 www t\u01b0\u01a1ng \u1ee9ng, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng m\u00e3 sau trong t\u1ec7p .htaccess:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># 301 REDIRECT WWW TO NON-WWW\r\n&lt;IfModule mod_rewrite.c&gt;\r\nRewriteEngine On\r\nRewriteCond %{HTTP_HOST} ^www\\.(.*)$ [NC]\r\nRewriteRule ^(.*)$ http:\/\/%1\/$1 [R=301,L]\r\n&lt;\/IfModule&gt;<\/pre>\n<h3>Chuy\u1ec3n h\u01b0\u1edbng t\u1eeb non-www sang www<\/h3>\n<p>T\u1ea5t nhi\u00ean, v\u1eabn c\u00f3 c\u00e1c trang web ch\u1ecdn s\u1eed d\u1ee5ng www trong URL.<\/p>\n<p>\u0110\u1ec3 chuy\u1ec3n h\u01b0\u1edbng t\u1ea5t c\u1ea3 c\u00e1c li\u00ean k\u1ebft \u0111\u1ebfn trang web t\u1eeb phi\u00ean b\u1ea3n kh\u00f4ng c\u00f3 www sang phi\u00ean b\u1ea3n c\u00f3 ch\u1ee9a www t\u01b0\u01a1ng \u1ee9ng, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng m\u00e3 sau:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># 301 REDIRECT NON-WWW TO WWW\r\n&lt;IfModule mod_rewrite.c&gt;\r\nRewriteEngine On\r\nRewriteCond %{HTTP_HOST} ^(?!www\\.)(.+) [NC]\r\nRewriteRule ^(.*) http:\/\/www.%1\/$1 [R=301,NE,L]\r\n&lt;\/IfModule&gt;<\/pre>\n<h3>Chuy\u1ec3n h\u01b0\u1edbng \u0111\u1ed3ng th\u1eddi http sang https v\u00e0 www sang non-www<\/h3>\n<p>C\u00e1c \u0111o\u1ea1n m\u00e3 tr\u00ean ch\u1ec9 th\u1ef1c hi\u1ec7n m\u1ed9t ch\u1ee9c n\u0103ng, b\u1ea1n c\u0169ng c\u00f3 th\u1ec3 k\u1ebft h\u1ee3p ch\u00fang v\u00e0o c\u00f9ng m\u1ed9t \u0111o\u1ea1n m\u00e3 nh\u01b0 sau:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># 301 REDIRECT HTTP TO HTTPS AND WWW TO NON-WWW\r\n&lt;IfModule mod_rewrite.c&gt;\r\nRewriteEngine On\r\nRewriteCond %{HTTPS} off [OR]\r\nRewriteCond %{HTTP_HOST} ^www\\. [NC]\r\nRewriteCond %{HTTP_HOST} ^(?:www\\.)?(.+)$ [NC]\r\nRewriteRule ^ https:\/\/%1%{REQUEST_URI} [L,NE,R=301]\r\n&lt;\/IfModule&gt;<\/pre>\n<h3>Chuy\u1ec3n h\u01b0\u1edbng \u0111\u1ed3ng th\u1eddi https sang http v\u00e0 non-www sang www<\/h3>\n<p>T\u01b0\u01a1ng t\u1ef1 v\u1edbi vi\u1ec7c chuy\u1ec3n \u0111\u1ed3ng th\u1eddi https sang https v\u00e0 non-www sang www<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># 301 REDIRECT HTTP TO HTTPS AND NON-WWW TO WWW\r\n&lt;IfModule mod_rewrite.c&gt;\r\nRewriteEngine On\r\nRewriteCond %{HTTPS} off [OR]\r\nRewriteCond %{HTTP_HOST} !^www\\. [NC]\r\nRewriteCond %{HTTP_HOST} ^(?:www\\.)?(.+)$ [NC]\r\nRewriteRule ^ https:\/\/www.%1%{REQUEST_URI} [L,NE,R=301]\r\n&lt;\/IfModule&gt;<\/pre>\n<p>Nh\u1eefng \u0111o\u1ea1n m\u00e3 tr\u00ean r\u1ea5t h\u1eefu \u00edch \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o c\u00e1c URL tr\u00ean trang web ho\u1ea1t \u0111\u1ed9ng theo \u00fd b\u1ea1n, c\u00f2n nhi\u1ec1u \u0111o\u1ea1n m\u00e3 kh\u00e1c c\u0169ng h\u1eefu \u00edch m\u00e0 b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng trong t\u1ec7p .htaccess trong t\u00e0i li\u1ec7u tham kh\u1ea3o d\u01b0\u1edbi \u0111\u00e2y. L\u01b0u \u00fd nh\u1edb sao l\u01b0u t\u1ec7p .htaccess \u0111\u1ec3 c\u00f3 th\u1ec3 kh\u00f4i ph\u1ee5c khi c\u00f3 s\u1ef1 c\u1ed1 nh\u00e9.<\/p>\n<h2>\u0110\u1ed1i v\u1edbi m\u00e1y ch\u1ee7 NGINX<\/h2>\n<p>Nginx hi\u1ec7n chi\u1ebfm 32% th\u1ecb ph\u1ea7n web server. NGINX kh\u00f4ng h\u1ed7 tr\u1ee3 .htaccess n\u00ean \u0111\u1ec3 chuy\u1ec3n h\u01b0\u1edbng URL ch\u00fang ta ph\u1ea3i s\u1eeda \u0111\u1ed5i trong c\u1ea5u h\u00ecnh c\u1ee7a NGINX.<\/p>\n<p>Trong NGINX giao th\u1ee9c HTTP s\u1eed d\u1ee5ng c\u1ed5ng 80 v\u00e0 HTTPS s\u1eed d\u1ee5ng c\u1ed5ng 443, h\u00e3y truy c\u1eadp v\u00e0o th\u01b0 m\u1ee5c c\u1ea5u h\u00ecnh NGINX t\u1ea1i \u0111\u01b0\u1eddng d\u1eabn ..\/etc\/nginx\/conf.d\/ v\u00e0 m\u1edf file c\u1ea5u h\u00ecnh web c\u1ee7a b\u1ea1n (th\u00f4ng th\u01b0\u1eddng c\u00f3 t\u00ean l\u00e0 tenmien.conf). S\u1eeda \u0111\u1ed5i \u0111o\u1ea1n code nh\u01b0 sau:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">server\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0listen\u00a080;\r\n\u00a0\u00a0\u00a0\u00a0server_name\u00a0example.com\u00a0www.example.com;\r\n\u00a0\u00a0\u00a0\u00a0return\u00a0301\u00a0https:\/\/example.com$request_uri;\r\n}<\/pre>\n<p>\u0110\u1ec3 chuy\u1ec3n h\u01b0\u1edbng www sang non-www s\u1eeda code nh\u01b0 sau:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">server {\r\n    listen 443 ssl;\r\n    server_name www.example.com;\r\n    return 301 $scheme:\/\/example.com$request_uri;\r\n}<\/pre>\n<p>Sau khi s\u1eeda \u0111\u1ed5i b\u1ea1n kh\u1ed5i \u0111\u1ed9ng l\u1ea1i Web server Nginx \u0111\u1ec3 thay \u0111\u1ed5i \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n.<\/p>\n<p>Tr\u00ean \u0111\u00e2y l\u00e0 c\u00e1c c\u00e1ch chuy\u1ec3n h\u01b0\u1edbng t\u1eeb HTTP sang HTTPS, t\u1eeb www sang non-www ho\u1eb7c ng\u01b0\u1ee3c l\u1ea1i. B\u1ea1n c\u1ea7n \u0111\u1ea3m b\u1ea3o th\u1ef1c hi\u1ec7n m\u1ed9t c\u00e1ch ch\u00ednh x\u00e1c, n\u1ebfu kh\u00f4ng s\u1ebd \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn th\u1ee9 h\u1ea1ng t\u00ecm ki\u1ebfm c\u1ee7a trang web. Hy v\u1ecdng b\u00e0i vi\u1ebft n\u00e0y c\u00f3 th\u1ec3 gi\u00fap \u00edch cho b\u1ea1n.<\/p>\n<h2>Tham kh\u1ea3o:<\/h2>\n<p><a href=\"https:\/\/simonecarletti.com\/blog\/2016\/08\/redirect-domain-http-https-www-apache\/\" target=\"_blank\" rel=\"noopener noreferrer\">Apache redirect www to non-www and HTTP to HTTPS<\/a>\u00a0(Simon Carletti)<br \/>\n<a href=\"https:\/\/www.2daygeek.com\/website-redirection-using-htaccess-file\/\" target=\"_blank\" rel=\"noopener noreferrer\">23 Awesome .htaccess redirection from (www to Non-www) AND (Non-www to www)<\/a>\u00a0(2daygeek)<br \/>\n<a href=\"https:\/\/github.com\/phanan\/htaccess\/blob\/master\/README.md\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Apache redirect www to non-www and HTTP to HTTPS 23 Awesome .htaccess redirection from (www to Non-www) AND (Non-www to www) .htaccess Snippets (GitHub) (opens in a new tab)\">.htaccess Snippets<\/a>\u00a0(GitHub)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Trong qu\u00e1 kh\u1ee9, c\u00e1c trang web th\u01b0\u1eddng kh\u00f4ng \u0111\u01b0\u1ee3c b\u1ea3o m\u1eadt v\u00e0 t\u1ea5t c\u1ea3 c\u00e1c URL \u0111\u1ec1u b\u1eaft \u0111\u1ea7u b\u1eb1ng www. Ng\u00e0y nay, h\u1ea7u h\u1ebft c\u00e1c trang web \u0111\u1ec1u c\u00f3 ch\u1ee9ng ch\u1ec9 b\u1ea3o m\u1eadt SSL v\u00e0 ph\u1ea7n l\u1edbn c\u0169ng lo\u1ea1i b\u1ecf ph\u1ea7n t\u1eed www trong \u0111\u01b0\u1eddng d\u1eabn URL. Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh s\u1ebd h\u01b0\u1edbng [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jnews-multi-image_gallery":[],"jnews_single_post":[],"jnews_primary_category":[],"jnews_social_meta":[],"jnews_override_counter":[],"footnotes":""},"categories":[],"tags":[],"class_list":["post-1789","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/anhduc.org\/index.php?rest_route=\/wp\/v2\/posts\/1789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/anhduc.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/anhduc.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/anhduc.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/anhduc.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1789"}],"version-history":[{"count":1,"href":"https:\/\/anhduc.org\/index.php?rest_route=\/wp\/v2\/posts\/1789\/revisions"}],"predecessor-version":[{"id":1791,"href":"https:\/\/anhduc.org\/index.php?rest_route=\/wp\/v2\/posts\/1789\/revisions\/1791"}],"wp:attachment":[{"href":"https:\/\/anhduc.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/anhduc.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/anhduc.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}