จะใช้ Wordpress Multisite พร้อมชื่อโดเมนต่างกันได้อย่างไร


19

ฉันต้องการทำงานกับ WordPress ไซต์ต่าง ๆ แต่ฉันต้องการใช้ชื่อของตัวเอง example.comตัวอย่างเช่นเว็บไซต์หลักของฉันถูกเรียกว่า ถ้าผมต้องการที่จะเพิ่มเว็บไซต์ใหม่ในเครือข่าย MultiSite newsite.example.comการของฉันมันจะถูกเรียกว่า ฉันอยากให้มันเป็นโดยไม่ต้องnewsite.com exampleมีวิธีที่จะบรรลุเป้าหมายนี้หรือไม่?

ฉันได้ยินเกี่ยวกับการจับคู่โดเมนกับปลั๊กอิน แต่ฉันไม่รู้ว่าสิ่งนี้เกี่ยวข้องกับคำถามนี้หรือไม่ หากมีความเกี่ยวข้องฉันต้องการที่จะรู้ว่าสิ่งนี้คืออะไร


อาจจะคุ้มค่าที่จะทำโดยไม่มีปลั๊กอินคุณจะต้องมี IP เฉพาะอย่างน้อยก็เป็นความเข้าใจของฉัน
Neal Jones

คำตอบ:


25

ดูเหมือนจะมีความสับสนเล็กน้อยในหัวข้อนี้เสมอ บางที WordPress อาจทำงานได้ดีกว่าเมื่อเป็นผู้ใช้ในกระบวนการนี้ แม้ว่าฉันคิดว่า Multi-site ไม่ได้มีไว้สำหรับใช้กับ TLD

ดังนั้นก่อนอื่นผมจะติดตั้ง WordPress , MultiSite การติดตั้งและกำหนดค่าเป็นกำหนดค่าเครือข่ายโดเมนย่อย

นี่คือตัวอย่างการกำหนดค่าwp-config.phpไฟล์ของคุณในไดเรกทอรีฐานของการติดตั้ง WordPress ของคุณ:

/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'www.primary-domain.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

จากนั้นนี่คือการกำหนดค่าพื้นฐานสำหรับ.htaccessไฟล์ของคุณเป็นการกำหนดค่าโดเมนย่อยในไดเรกทอรีฐานของการติดตั้ง WordPress ของคุณ:

# BoF WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

# EoF WordPress

ตอนนี้เพื่อให้ TLD ทำงานได้อย่างถูกต้องฉันต้องทำการกำหนดค่าเพิ่มเติมบางอย่างกับwp-config.phpไฟล์ดังนี้:

define( 'COOKIE_DOMAIN', '' );
define( 'ADMIN_COOKIE_PATH', '/' );
define( 'COOKIEPATH', '/' );
define( 'SITECOOKIEPATH', '/' );

เพียงเท่านี้การตั้งค่าเฉพาะของ WordPress

ส่วนตัวผมชอบที่จะมี Apache Virtual Host สำหรับโดเมนหลักในเครือข่ายแล้วกำหนดค่าโฮสต์เสมือนที่มีโดเมนนามแฝง แต่ละชื่อแทนโดเมนเป็นหนึ่งในเว็บไซต์เพิ่มเติมในเครือข่ายของคุณ

อย่างไรก็ตามคุณต้องปรับแต่งค่าติดตั้งของคุณคุณต้องใช้ DNS ของแต่ละโดเมนเพื่อแก้ไขเว็บเซิร์ฟเวอร์เดียวกันและแต่ละโดเมนจะชี้ไปที่ไดเรกทอรีเดียวกันที่ติดตั้งโดเมนหลักกับ WordPress แต่ละโดเมนในเครือข่ายของคุณต้องชี้ไปที่เว็บเซิร์ฟเวอร์เดียวกันที่มีระเบียน DNS และแชร์เส้นทางไดเรกทอรีเดียวกันสำหรับไฟล์ที่ใช้งานโดย WordPress

เมื่อคุณได้รับการกำหนดค่าและตั้งค่าทุกอย่างตามที่กล่าวไว้ข้างต้น เข้าสู่พื้นที่การดูแลระบบ WordPress ของคุณและนำทางไปยังพื้นที่การดูแลระบบเครือข่ายเพื่อเพิ่มเว็บไซต์ใหม่ในเครือข่ายของคุณ

เมื่อคุณไปเพิ่มเว็บไซต์มันจะบังคับให้คุณเพิ่มเว็บไซต์ราวกับว่าเป็นโดเมนย่อยภายใต้โดเมนหลักของคุณ แค่หมุนไปเลย ป้อนบางสิ่งบางอย่างชั่วคราว

เมื่อเพิ่มไซต์แล้วให้ไปหามันภายใต้รายการไซต์ในเครือข่ายของคุณ คลิกแก้ไขในไซต์นั้น ๆ ตอนนี้คุณสามารถเปลี่ยนชื่อโดเมนของเว็บไซต์นั้นได้อย่างสมบูรณ์ 100% นั่นคือเมื่อคุณจะใส่ชื่อโดเมนที่แท้จริงสำหรับไซต์ TLD นี้

ฉันรู้ว่ามันเป็นกลอุบายเล็กน้อยที่จะทำเช่นนั้น แต่มันใช้งานได้และคุณไม่จำเป็นต้องใช้ปลั๊กอินใด ๆ


ขอบคุณสำหรับสิ่งนี้ดูเหมือนว่าจะใช้งานได้ - และมันก็ดูเหมือนจะต้องการส่วนคุกกี้ สำหรับฉันฉัน 1) ลงทะเบียนโดเมนใหม่ 2) ชี้เซิร์ฟเวอร์ของตนไปยังโฮสต์ WordPress Multisite ที่มีอยู่ของฉัน 3) ใน cPanel ได้ทำ Add-On Domain ตั้งค่ารากของเอกสารเป็น public_html เดียวกับเว็บไซต์หลัก (เช่นคุณ กล่าวว่าฉันไม่ได้ลองวิธีการเริ่มต้นของไดเรกทอรีใหม่ดังนั้นไม่แน่ใจว่าจะใช้งานได้) และ 4) เปลี่ยน URL ย่อยของเว็บไซต์ย่อยจากoldsubdomain.primarysite.comเป็นnewdomain.com นิ้วข้ามไม่มีปัญหา DNS ดังนั้น ห่างไกล
Robert Andrews

ฉันรักคำตอบนี้ ... แต่ฉันมีปัญหา ข้อเสนอแนะของคุณสำหรับการเปลี่ยน. htaccess เนื่องจาก wordpress ยังให้การแก้ไขเดียวกัน เมื่อฉันทำการเปลี่ยนแปลงระบบขัดข้อง ความคิดใด ๆ ว่าทำไมถึงเป็นเช่นนั้น?
Debbie Kurth

4

มันเป็นไปไม่ได้หากไม่มีปลั๊กอินใด ๆ ตั้งแต่รีลีสที่ผ่านมา (จำไม่ได้ว่ารีลีสแบบคอนกรีต อย่างไรก็ตามหากคุณเริ่มต้นจากศูนย์คุณควรติดตั้ง WordPress multisite ในโหมดโดเมนย่อย

คุณต้องประกาศ URL หลัก (อาจkevin123.com) เป็น URL หลักสำหรับเครือข่าย (หลายไซต์) นี้จะถูกเก็บไว้ในwp-config.phpในDOMAIN_CURRENT_SITEอย่างต่อเนื่องและเว็บไซต์ (เดิมชื่อ»บล็อก«) โดยใช้โดเมนนี้เป็น URL ที่บ้านจะต้องมี ID BLOG_ID_CURRENT_SITEที่เก็บไว้ใน แต่นี่เป็นสิ่งที่เป็นค่าเริ่มต้นในระหว่างกระบวนการติดตั้งมาตรฐาน

WordPress อนุญาตให้คุณระบุโดเมนย่อยเท่านั้นเมื่อคุณสร้างเว็บไซต์ใหม่ แต่หลังจากสร้างเว็บไซต์แล้วคุณสามารถแก้ไขได้และเพิ่มมูลค่าโดยสมบูรณ์สำหรับ URL ของเว็บไซต์ ฉันได้อธิบายไปแล้วเมื่อไม่นานมานี้ในคำตอบนี้โดยมีภาพหน้าจอบางส่วน: สามารถซ้อนโดเมนย่อยที่มีหลายไซต์ย่อยได้หรือไม่

คุณอาจต้องตั้งค่าคงCOOKIE_DOMANที่เป็นค่าว่างในwp-config.php:

define( 'COOKIE_DOMAIN', '' );
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.