ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: arttojung ที่ 07 พฤศจิกายน 2011, 20:46:32



หัวข้อ: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: arttojung ที่ 07 พฤศจิกายน 2011, 20:46:32
คือผมพยายามหาใน google แล้วไม่เข้าใจอะครับ

คือผมอยากสร้าง ซับโดเมนจากไอเร็คทอรี่ เช่น domain.com/test เป็น test.domain.com
โดยการใช้ .htaccess ตอนนี้ผมทำการเปิด  wildcard dns แล้วอะครับ
ทีนี้ในไฟล์ .htaccess ผมต้องใส่อะไรไปบ้างเท่าที่อ่านมาจะเป็น

RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule ^(.*)\.php$ index.php?subdomain=%1 [L,QSA]

คือผมไม่ทราบว่ามันถูกหรือป่าวหนะครับ

 :wanwan017: :wanwan017:


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: cattee ที่ 07 พฤศจิกายน 2011, 20:49:31
 :wanwan022:


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: arttojung ที่ 07 พฤศจิกายน 2011, 20:59:55
ดันหน่อยครับ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: AKarnny ที่ 07 พฤศจิกายน 2011, 21:00:51
หาอยู่คึกัน  :wanwan017:


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: TummZ ที่ 07 พฤศจิกายน 2011, 21:13:57
รอผู้รู้ครับ  :wanwan017:


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: arttojung ที่ 07 พฤศจิกายน 2011, 21:30:51
ไม่มีใครรู้เลยหรอ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: Naskung ที่ 07 พฤศจิกายน 2011, 21:49:43
ใช้ host คนละอย่างซะด้วย


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: Kobsoft ที่ 07 พฤศจิกายน 2011, 21:52:40
  :D ผ่านมาสองรอบแล้ว ยังไม่เห็นมีใครมาตอบ ... เลยแวะเจิมให้สักหน่อยคับ

เขียนแบบนี้นะจ๊ะ

RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9\-]+).domain.com [NC]
RewriteRule ^$ index.php?subdomain=%2

*เงื่อนไขด้านบนสตริงใน ซับโดเมนเป็นได้เฉพาะ a-z เลข 0-9 และ - นะคับ ถ้า้ต้องการเพิ่มเติมก็แก้เงื่อนไขได้เลย สำหรับค่าที่ส่งไปนั้นจะส่งไปให้เพจ index.php  ตัวแปรชื่อ $_GET[subdomain] คับ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: arttojung ที่ 07 พฤศจิกายน 2011, 21:53:49
  :D ผ่านมาสองรอบแล้ว ยังไม่เห็นมีใครมาตอบ ... เลยแวะเจิมให้สักหน่อยคับ

เขียนแบบนี้นะจ๊ะ

RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9\-]+).domain.com [NC]
RewriteRule ^$ index.php?subdomain=%2

*เงื่อนไขด้านบนสตริงใน ซับโดเมนเป็นได้เฉพาะ a-z เลข 0-9 และ - นะคับ ถ้า้ต้องการเพิ่มเติมก็แก้เงื่อนไขได้เลย สำหรับค่าที่ส่งไปนั้นจะส่งไปให้เพจ index.php  ตัวแปรชื่อ $_GET[subdomain] คับ
ผมเอาใส่ใน .htaccess แล้วอัพลงโฮสแล้วใช้ได้เลยป่ะครับ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: NightClub ที่ 07 พฤศจิกายน 2011, 21:55:33
ไม่แน่ใจว่าต้องทำ wildcard domain ด้วยหรือเปล่านะ ได้ยังไงบอกด้วยนะครับ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: arttojung ที่ 07 พฤศจิกายน 2011, 21:56:28
ไม่แน่ใจว่าต้องทำ wildcard domain ด้วยหรือเปล่านะ ได้ยังไงบอกด้วยนะครับ
ครับเดียวถ้าทำได้ เดียวผมบอก


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: xvlnw.com ที่ 07 พฤศจิกายน 2011, 21:58:31
ผมทำแบบนี้นะครับ

ส่วนที่ 1 .htaccess
โค๊ด:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

ส่วนที่ 2 PHP สำหรับรับค่า Sub Domain
โค๊ด:
<?php
$maindomain 
"domain.com";
$sub preg_replace("/(\.)?(".$maindomain.")$/"""$_SERVER["HTTP_HOST"]);
if(
$sub != "" and $sub != "www"){
echo "Sub Domain: {$sub}";
}else{
echo "Main Domain";
}
$segment = isset($_SERVER['PATH_INFO']) ? explode('/',preg_replace('~^/?(.*?)/?$~','$1',$_SERVER['PATH_INFO'])) : array() ;
echo 
"<pre>";
print_r($segment);
echo 
"</pre><pre>";
print_r($_GET);
echo 
"</pre>";
?>

หลังจากนั้นจะทำไรต่อก็ตามแต่สะดวกครับ
อ้อ อย่าลืมทำ Wildcard DNS ด้วยนะครับผม

 :wanwan003:


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: arttojung ที่ 07 พฤศจิกายน 2011, 22:01:33
ผมทำแบบนี้นะครับ

ส่วนที่ 1 .htaccess
โค๊ด:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

ส่วนที่ 2 PHP สำหรับรับค่า Sub Domain
โค๊ด:
<?php
$maindomain 
"domain.com";
$sub preg_replace("/(\.)?(".$maindomain.")$/"""$_SERVER["HTTP_HOST"]);
if(
$sub != "" and $sub != "www"){
echo "Sub Domain: {$sub}";
}else{
echo "Main Domain";
}
$segment = isset($_SERVER['PATH_INFO']) ? explode('/',preg_replace('~^/?(.*?)/?$~','$1',$_SERVER['PATH_INFO'])) : array() ;
echo 
"<pre>";
print_r($segment);
echo 
"</pre><pre>";
print_r($_GET);
echo 
"</pre>";
?>

หลังจากนั้นจะทำไรต่อก็ตามแต่สะดวกครับ
อ้อ อย่าลืมทำ Wildcard DNS ด้วยนะครับผม

 :wanwan003:
ส่วน php นี้เราต้องเรียกใช้ตอนไหนครับ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: KNACX ที่ 07 พฤศจิกายน 2011, 22:02:56
ต้องทำ wildcard ด้วยนะครับ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: arttojung ที่ 07 พฤศจิกายน 2011, 22:04:23
ต้องทำ wildcard ด้วยนะครับ
ตรงนี้ผมทำแล้วครับ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: xvlnw.com ที่ 07 พฤศจิกายน 2011, 22:04:40
ผมทำแบบนี้นะครับ

ส่วนที่ 1 .htaccess
โค๊ด:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

ส่วนที่ 2 PHP สำหรับรับค่า Sub Domain
โค๊ด:
<?php
$maindomain 
"domain.com";
$sub preg_replace("/(\.)?(".$maindomain.")$/"""$_SERVER["HTTP_HOST"]);
if(
$sub != "" and $sub != "www"){
echo "Sub Domain: {$sub}";
}else{
echo "Main Domain";
}
$segment = isset($_SERVER['PATH_INFO']) ? explode('/',preg_replace('~^/?(.*?)/?$~','$1',$_SERVER['PATH_INFO'])) : array() ;
echo 
"<pre>";
print_r($segment);
echo 
"</pre><pre>";
print_r($_GET);
echo 
"</pre>";
?>

หลังจากนั้นจะทำไรต่อก็ตามแต่สะดวกครับ
อ้อ อย่าลืมทำ Wildcard DNS ด้วยนะครับผม

 :wanwan003:
ส่วน php นี้เราต้องเรียกใช้ตอนไหนครับ

เอาไปไว้ใน index.php ครับ

แล้วลองเรียก
โค๊ด:
xxx.domain.com
yyy.domain.com
zzz.domain.com
domain.com
domain.com/xxx/yyy/zzz.html
บรา ๆ ๆ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: Putter™ ที่ 08 พฤศจิกายน 2011, 03:44:20
แอบฟังๆ เป็นยังไงบ้างครับ

ถึงไหนแล้ว ครับ เจ้าของกระทู้

ได้ไอเดียดีๆเยอะเลยจากกระทู้นี้  :wanwan017:


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: bank_i3 ที่ 08 พฤศจิกายน 2011, 07:54:24
ขอบคุณครับ ขอเก็บก่อน :wanwan017:


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: logisfix ที่ 08 พฤศจิกายน 2011, 08:45:52
อันนี้เปล่า ผมก็ไม่ได้ใช้ apache

http://www.siamwebcity.com/%E0%B8%A7%E0%B8%B4%E0%B8%98%E0%B8%B5%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87_subdomain_%E0%B9%82%E0%B8%94%E0%B8%A2%E0%B9%83%E0%B8%8A%E0%B9%89_mod_rewrite_%E0%B8%82%E0%B8%AD%E0%B8%87_apache_%E0%B8%84%E0%B8%A3%E0%B8%B1%E0%B8%9A_-515-16.html


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: arttojung ที่ 08 พฤศจิกายน 2011, 13:34:22
ตอนนี้ผมพอจะทำได้แล้วครับ เพียงแต่ว่ายังมี error อยู่นิดหน่อยเดียวถ้าทำได้แล้วเดียวจะมาเขียนเล่าให้ฟังนะครับ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: arttojung ที่ 08 พฤศจิกายน 2011, 13:48:02
ได้ล่ะครับ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: arttojung ที่ 08 พฤศจิกายน 2011, 13:55:24
ตรงนี้ผมไม่ได้ใช้ .htaccess พอดีไปเจอกระทู้นี้ http://www.thaiseoboard.com/index.php/topic,16485.0.html
เข้าก็เลยลองทำตามดูปรากฎว่าทำได้

ผมได้นำ code ในส่วนนี้


$maindomain = "thaiseoboard.com";
$sub = preg_replace("/(\.)?(".$maindomain.")$/", "", $_SERVER["HTTP_HOST"]);

if($sub) {
include("$sub/index.php");  //สั่ง include มาแสดงผลแทน
}

ไปใส่ในหน้าเว็บอะนะครับ ซึ้งถ้าเราเอาตาม code นี้ถ้ามันเป็นหน้าแรกมันก็จะไม่มีปัญหาอะไรแต่ถ้าเราลองสั่งหน้าซัพดูซึ่งมันจะโชว์ index.php ในหน้าซัพ แล้วก็โชว์ในหน้าแรกของเราด้วยซึ่ง้ราไม่ต้องการดังนั้นผมจึงสร้างไฟล์ index2.php ขึ้นมาอะนะครับ แล้วนำ code นี้ไปใส่ในไฟล์ index.php ใน path แรกของเรา
<?php
$maindomain = "domain.com";
$sub = preg_replace("/(\.)?(".$maindomain.")$/", "", $_SERVER["HTTP_HOST"]);

if($sub) {
include("$sub/index.php");
}else{
include("index2.php");
}
?>

ดังนั้นก็จะได้ ถ้าเราเรียกเป็นซัพมันก็จะวิ่งไปหน้า sub/index.php แต่ถ้าเราเรียกโดเมนหลักมันก็จะวิ่งไปหน้า index2.php แทนประมาณนี้อะครับลองเอาไปปรับใช้กันดูครับ ทั้งนี้ในส่วนนี้ผมได้คุณ xvlnw.com มาให้คำแนะนำด้วยหนะครับ


หัวข้อ: Re: สร้างซับโดเมนด้วย .htaccess
เริ่มหัวข้อโดย: 4Aoy ที่ 08 พฤศจิกายน 2011, 15:17:42
มาเรียนรู้ วันหน้าจะได้ทำ :P