Contents
Cấu hình Nginx chuyển hướng truy cập
URL “www” sang “non-www” và ngược lại
Với bài hướng dẫn ngắn này, mình sẽ nói về việc cấu hình chuyển hướng tên miền “URL www” -> “URL non-www” và ngược lại trên Web Server Nginx. Ví dụ như bạn phải quyết định sử dụng 1 loại tên miền, ví dụ như “www.cuongquach.com” hoặc “cuongquach.com” cho hoạt động website và SEO, thì bạn cần đảm bảo người dùng nếu có truy cập tên miền ví như “www.cuongquach.com” sẽ tự động chuyển hướng về “cuongquach.com”.
Nếu bạn sử dụng Web Server Nginx thì phần cấu hình đó sẽ vô cùng đơn giản như mình sẽ hướng dẫn sau đây.
I. Chuyển hướng (redirect) từ non-www URL sang www URL
Cách 1 :
– Tạo 1 block cấu hình tương ứng với tên miền dạng www/non-www mà bạn muốn chuyển hướng.
– Ở đây ta sẽ chuyển hướng “http://cuongquach.com” sang “http://www.cuongquach.com” .
server { server_name cuongquach.com; return 301 $scheme://www.cuongquach.com$request_uri; }
– Lưu cấu hình lại. Kiểm tra và khởi động lại Nginx.
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # /etc/init.d/nginx restart
– Kiểm tra xem Nginx đã thực hiện nội dung chuyển hướng truy cập non-www sang www hay chưa bằng chương trình lệnh CURL. Nếu kết quả ra status code HTTP 301 và giá trị Location tương ứng tên miền www/non-www mà bạn mong muốn là ta đã thành công.
# curl -I cuongquach.com HTTP/1.1 301 Moved Permanently Server: nginx/1.8.0 Date: Fri, 26 Jun 2015 08:36:15 GMT Content-Type: text/html Content-Length: 184 Connection: keep-alive Location: http://www.cuongquach.com/
Cách 2 :
– Sử dụng cấu hình “if” trong nginx.
– Không khuyến khích xài cách này, do cơ chế “if” của Nginx có những mặt xấu và bất lợi, nội dung này sẽ được nêu ở bài viết khác.
server { server_name cuongquach.com www.cuongquach.com; ... if ($host = 'cuongquach.com') { rewrite ^/(.*)$ http://www.cuongquach.com/$1 permanent; } }
– Kiểm tra cấu hình, khởi động lại dịch vụ Nginx và test curl như trên.
II. Chuyển hướng (redirect) từ www URL sang non-www URL
Cách 1 :
– Tạo 1 block cấu hình tương ứng với tên miền dạng www/non-www mà bạn muốn chuyển hướng.
– Ở đây ta sẽ chuyển hướng “http://www.cuongquach.com” sang “http://cuongquach.com” .
server { server_name www.cuongquach.com; return 301 $scheme://cuongquach.com$request_uri; }
– Lưu cấu hình lại. Kiểm tra và khởi động lại Nginx.
# nginx -t # /etc/init.d/nginx restart
– Kiểm tra xem Nginx đã thực hiện nội dung chuyển hướng truy cập non-www sang www hay chưa bằng chương trình lệnh CURL.
# curl -I www.cuongquach.com HTTP/1.1 301 Moved Permanently Server: nginx/1.8.0 Date: Fri, 26 Jun 2015 08:36:15 GMT Content-Type: text/html Content-Length: 184 Connection: keep-alive Location: http://cuongquach.com/
Cách 2 :
– Sử dụng cấu hình “if” trong nginx.
server { server_name cuongquach.com www.cuongquach.com; ... if ($host = 'www.cuongquach.com') { rewrite ^/(.*)$ http://cuongquach.com/$1 permanent; } }
– Kiểm tra cấu hình, khởi động lại dịch vụ Nginx và test curl như trên.
Như vậy là xong nội dung cấu hình Nginx chuyển hướng truy cập tên miền dạng www sang non-www và ngược lại. Chúc các bạn thành công.