ให้ติดต่อโฮสต์
หรือ
ต้องทำที่
1 DNS Record
2 Webserver
ใช้ของใครติดต่อกับคนนั้น ต้องทำทั้งสองที่
ปกติ yourdomain.com จะต้องเข้าได้อยู่แล้ว ถ้าไม่ได้คือเป็นที่ Webserver ไม่ได้ตั้ง alias hostname
กรณี www.yourdomain.com อันนี้ต้องทำที่ DNS Record ให้มัน forward ไปที่ @ แล้วก็ต้องเช็ค config ของ webserver
หรือ
ลองตั้ง dns ใหม่ เหมือนว่าจะให้กำหนดแบบไม่มี www แล้วก็แบบมีสองอย่างเลย ในส่วนของ ระบบจัดการโดเมน
หรือ
@ IN A ip host
www IN A ip host
ดูที่ DNS ว่ามี การตั้งค่า @ ไว้มั๊ย
หรือ
ปัญหามาจากการตั้งค่า dns ครับ ลองตรวจสอบการตั้งค่า dns ดู
หรือ
ให้เข้าได้ทั้งแบบ www.domain.com หรือ domain.com หลักการมันมี 2 อย่างใหญ่ๆ
1. DNS
ที่ DNS server ที่ domain.com ใช้อยู่ต้อง map A record สำหรับ www.domain.com และ domain.com ด้วย
(เพราะมี www. มันก็เป็นชื่อๆหนึ่งเท่านั้น อย่างจะเป็น http://mmm.domian.com ก็ได้ Smiley )
ทดสอบง่ายๆ คือ nslookup www.domain.com และ nslookup doman.com ถ้า return IP address ของ web server ถูกต้อง ออกมาเหมือนกันก็ OK แสดงว่า DNS server map ให้ทั้ง 2 แบบแล้ว
2. Web server setting
DNS support แล้ว Web server setting ก็ต้อง support ด้วย ยกตัวอย่าง Apache แล้วกันครับ ปกติ Apache hosting เราๆ ก็จะใช้รูปแบบ virtual host อยู่เพื่อรองรับได้ หลาย domain ซึ่ง virtual host ที่นี้ต้องรองรับ ทั้งแบบ www.domain.com และ domain.com ด้วย
ยกตัวอย่าง
ServerName domain.com
ServerAlias www.domain.com
แค่นี้ก็ใช้ได้ 2 ทั้งแบบแล้ว
บางที่ต้องการเพิ่ม คืออยากให้พิมพ์ ไม่มี www แล้ว redirect ไปเป็น www. อันนี้ก็ต้องทำ rewrite เพิ่มต่อ
คราวนี้ถ้าเจอว่า www ใช้ไม่ได้ หรือไม่มี www ใช้ไม่ได้ก็ต้องมาวิเคราะห์ ตามข้อมูลที่มี
หรือ
Redirect to www (.htaccess)
กรณีที่ Pagerank ไม่เท่ากันสามารถทำได้ด้วยการเคลื่อนย้าย gootum.com และ http://www.gootum.com/ กับชื่อโดเมนตามความเป็นจริงของคุณด้วยการสร้างไฟล์ .htaccess วิธีของ redirection ทำงานบนเครื่อง server ที่เป็น linux เท่านั้นวิธีเขียนดังนี้
Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} ^domain.com [nc] rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
ตัวอย่างที่ไม่อยากทำไฟล์ redirect ครับสามารถทำเปงไฟล์ .htaccess ได้
Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} ^cymiz.com [nc] rewritecond %{http_host} ^www.cymiz.com [nc] rewriterule ^(.*)$ http://blog.cymiz.com/$1 [r=301,nc] rewriterule ^(.*)$ http://blog.cymiz.com/$1 [r=301,nc]
แล้วทำการเชฟชื่อไฟล์เป็น .htaccess จบ
301 Redirect
หรือ
เรื่อง มี www กับ ไม่มี www
ไปเช็ค dns ก่อน ว่า มัน add ไว้หรือยัง ถ้า add ไว้หมดแล้วและเข้า ได้ทั้ง มี www และไม่มี www
ต่อมา เป็นการเขียน htaccess เพื่อระบุว่า โดเมนเราจะเข้า แบบมี www หรือ ไม่มี www
ก็เลือกเอาละกันว่าจะเอาแบบไหน อย่างใดอย่างนึ่ง ล่ะ ใส่ไปสองอย่าง มันจะมึน
# redirect non-www to www RewriteCond %{HTTP_HOST} ^cymiz.com [NC] RewriteRule ^(.*)$ http://www.cymiz.com/ $1 [L,R=301] # Redirect www to non-www RewriteCond %{HTTP_HOST} ^www\.(.*) RewriteRule (.*) http://%1/ $1 [R=301,L]
หรือ
แก้ที่ โดเมน ตรง dns
หรือ
เช็คที่ DNS Template
หรือ
ดูจาก http://who.is/dns/allwas.com ไม่มี www เป็น CNAME
แต่มี * ที่ A งั้นต้องดูว่า web server แบบมีหรือไม่มี www จะส่งไปไหน
มี .htaccess งั้นน่าจะเป็น Apache httpd และบน VPS ด้วย งั้นลองดู apache.conf หรือ httpd.conf ( มั่ง )
http://content.websitegear.com/article/subdomain_setup.htm
หรือ
น่าจะต้องตั้งค่าตรง dns management สำหรับ DA
หรือ
เขียน .htaccess
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^cymiz\.com$ [NC] RewriteRule ^(.*)$ http://www.cymiz.com/ $1 [R=301,L]
หรือ
dns management ตั้งค่าถูกรึยัง ?
แก้ ns ไปเมื่อไหร่? ถ้าพึ่งแก้ไปก็เรื่่องปกติ
แต่ทำไมอีกเว็บที่แก้พร้อมกัน มันได้เข้าได้ปกติแล้ว?
internet มันอัพเดท dns ไม่ตรงกัน ขึ้นกับหลายปัจจัย ถ้า dns management set ถูกแล้วก็รอไปก่อน
หรือ
Redirect non www to www ด้วย .htaccess
RewriteEngine on RewriteCond %{HTTP_HOST} ^cymiz.com [NC] RewriteRule ^(.*)$ http://www.cymiz.com/$1 [L,R=301]
เซฟเป็นไฟล์ .htaccess แล้วอัพไปไว้ที่ server
หรือ
สาเหตุเกิดจาก DNS Server ของอินเตอร์เน็ตที่ใช้อยู่ ซึ่งอาจมีการอัพเดท ไม่ตรงกัน หรือ เวลา TTL ไม่ตรงกันนั้นเอง จึงทำให้ Record ยังเป็นข้อมูลเก่าอยู่
หรืออาจเกิดจากการ Cache ของ DNS Server เช่น หากใช้อินเตอร์เน็ตใน มหาลัย จะมีการ Cache ไว้ จึงทำให้ข้อมูลมีการอัพเดทช้า
เรื่องโดเมน ที่มี และ ไม่มี www นั้น ผมสรุปไว้สั้นๆตรงนี้เลย ว่ามันคือโดเมนเดียวกัน cymiz.com และ www.cymiz.com ถือว่าเป็นโดเมนเดียวกัน นับเป็น 1 หน่วยโดเมน
แต่ถ้าใครอยากรู้ที่มาที่ไปมากกว่ารู้แค่ว่าเป็นโดเมนเดียวกัน ก็อ่านกันต่อได้เลยครับ เพราะว่าจะมีการอธิบายเชิงลึกลงไปเลย เพื่อความเข้าใจ
เรื่องนี้ต้องขอให้ย้อนกลับไปอ่านเรื่อง sub domain ก่อนเลย ตรงนี้ถือว่าทุกท่านได้อ่านจบ และเข้าใจตรงกันแล้วนะครับ จะได้อธิบายต่อครับ เนื่องจาก www ที่อยู่ข้างหน้า ตามที่เข้าใจตรงกัน ว่ามันคือ sub domain ของโดเมน นั่นแปลว่า www ที่อยู่หน้าชื่อ เราจะใช้หรือไม่ก็ได้ ไม่เสียเงินจดเพิ่ม เราจะเสียเงินเฉพาะ ค่าจดโดเมนเท่านั้น เช่น cymiz.com engineering.co.th เหล่านี้ ต้องเสียเงินจด นับเป็น 1 domain แต่ว่า sub domain การจะสร้างเพิ่ม เราสามารถทำได้ โดยการแก้ไขค่า DNS record ของโดเมน
โดยปกติ ที่เราจดโดเมน เราก็มักจะเช่า host ด้วยเพื่อการทำเว็บ ดังนั้น web master หลายคนก็เลยไม่รู้ว่า www ที่เกิดขึ้นมานั้น แท้จริงแล้ว เกิดมาจากการทำงานของ hosting ไม่ใช่ของโดเมนเลย เพราะว่าอย่างที่บอกไปแล้วว่า โดเมนก็มีแค่ meewebfree.com นั่นเอง แต่เมื่อเราเช่า host ไม่ว่าที่ไหนๆ น่าจะ 90% ของโลกเรา เค้ากำหนดให้ sub domain ที่ชื่อ www นั้นมีหน้าเว็บ หน้าเดียวกับ domain เลย ก็เลยทำให้คนสามารถเปิดเว็บได้ทั้งมี และไม่มี www ดังจะสังเกตุว่า www.meewebfree.com กับ meewebfree.com ได้หน้าตาเหมือนกันเลย แต่อย่างที่บอกว่า ประมาณ 90% เพราะว่าก็ยังมี อีก 10% ที่ไม่ได้กำหนดให้ sub domain ที่ชื่อ www เปิดมาแล้วได้หน้าเว็บเดียวกับโดเมน
นั่นแปลว่า จริงๆแล้วหน้าเว็บ จะปรากฏที่โดเมน meewebfree.com ไม่ใช่ปรากฏที่ www.meewebfree.com เหมือนอย่างที่หลายคนเข้าใจ แต่ด้วยระบบ hosting ก็เลยผูกให้ www.cymiz.com มีหน้าเว็บที่เหมือน cymiz.com ด้วยเลยเป็นอันเข้าใจตรงกันทั่วโลก
ดังนั้นเลิกเข้าใจผิดว่า www.cymiz.com และ cymiz.com เป็นคนละเว็บ คนละชื่อโดเมน เพราะว่ามันคือโดเมนเดียวกันครับ
แถมให้อีกนิดนึง ด้วยกระบวนการความเข้าใจเดียวกันนี้ จะทำให้เข้าใจได้ว่า ทำไมเห็นบางเว็บใช้ www2.domain.com www3.domain.com ซึ่งมันก็ไม่ใช่เทคนิคพิเศษอะไรเลย มันคือการทำงานแบบเดียวกับ www.domain.com นี่เองครับ (sub domain) และคำอธิบายนี้ก็ยังเป็นตัวบอกด้วยว่า ทำไมบางเว็บเข้าแบบที่ไม่มี www แล้วเข้าไม่ได้ หรือได้ผลที่ต่างจากหน้าที่ไม่มี www ถ้าเข้าเว็บแบบมี www ไม่ได้ แต่เข้าแบบไม่มี www ได้ แสดงว่าทุกอย่างทำงานปกติ แต่แค่ยังไม่ได้ตั้งให้ www ชี้เข้าไปยังหน้าเว็บแบบที่ไม่มี www เท่านั้นเอง
code ที่เขียนไว้ htaccess เพื่อ Redirect URL จาก non-www เป็น www
RewriteEngine On RewriteCond %{HTTP_HOST} ^domain\.com [NC] RewriteRule ^(.*) http://www.domain.com/$1 [L,R=301]