Bagaimana cara menggunakan Wordpress Multisite Dengan Berbagai Nama Domain?

19

Saya ingin bekerja dengan WordPress multisite, tetapi saya ingin dapat menggunakan nama saya sendiri. Misalnya situs utama saya disebut example.com. Jika saya ingin menambahkan situs baru ke jaringan multisite saya itu akan dipanggil newsite.example.com. Saya ingin itu newsite.comtanpa example. Apakah ada cara untuk mencapai ini?

Saya mendengar tentang pemetaan domain dengan sebuah plugin, tetapi saya tidak tahu apakah ini relevan dengan pertanyaan ini. Jika relevan, saya ingin tahu apa sebenarnya ini.

Kevin.a
sumber
Mungkin perlu dicatat bahwa yang harus dilakukan dengan tanpa plugin Anda harus memiliki IP Dedicated, setidaknya yang telah saya pahami.
Neal Jones

Jawaban:

25

Tampaknya selalu ada sedikit kebingungan tentang topik ini. Mungkin WordPress bisa melakukan pekerjaan yang lebih baik membimbing pengguna dalam proses ini. Meskipun, saya kira Multi-situs tidak dimaksudkan untuk digunakan untuk TLD.

Jadi pertama-tama, saya akan menginstal WordPress , mengatur multisite , dan mengkonfigurasinya sebagai konfigurasi jaringan subdomain.

Berikut ini contoh konfigurasi untuk wp-config.phpfile Anda di direktori dasar instalasi WordPress Anda:

/* 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 );

Lalu, inilah konfigurasi dasar untuk .htaccessfile Anda sebagai konfigurasi subdomain, di direktori dasar instalasi WordPress Anda:

# 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

Sekarang agar TLD berfungsi dengan baik, saya harus membuat beberapa konfigurasi tambahan untuk wp-config.phpfile seperti ini:

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

Itu saja dengan konfigurasi khusus WordPress.

Secara pribadi, saya ingin memiliki satu Host Virtual Apache untuk domain utama dalam jaringan dan kemudian mengkonfigurasi host virtual itu dengan domain alias. Setiap alias domain menjadi salah satu situs tambahan di jaringan Anda.

Namun Anda akhirnya mengubah pengaturan Anda, Anda memerlukan DNS setiap domain untuk menyelesaikan ke server web yang sama, dan setiap domain harus diarahkan ke direktori yang sama dengan domain utama diinstal dengan WordPress. Setiap domain di jaringan Anda perlu menunjuk ke server web yang sama dengan catatan DNS dan berbagi jalur direktori yang sama untuk file yang digunakan oleh WordPress.

Setelah semuanya terkonfigurasi dan disetel dengan benar seperti dibahas di atas. Masuk ke area administrasi WordPress Anda dan navigasikan ke area administrasi jaringan untuk menambahkan situs baru ke jaringan Anda.

Ketika Anda pergi untuk menambahkan situs, itu akan memaksa Anda untuk menambahkan situs web seolah-olah itu adalah sub domain di bawah domain utama Anda. Berguling saja. Masukkan sesuatu yang sementara.

Setelah situs telah ditambahkan, kemudian cari di bawah daftar situs di jaringan Anda. Klik edit di situs spesifik itu. Sekarang, Anda dapat sepenuhnya 100% mengubah nama domain situs web itu. Saat itulah Anda akan meletakkan nama domain yang sebenarnya untuk situs TLD ini.

Saya tahu ini sedikit tipu daya untuk melakukannya, tetapi itu berhasil dan Anda tidak perlu menggunakan plugin apa pun.

Michael Ecklund
sumber
Terima kasih untuk ini, sepertinya berhasil - dan sepertinya membutuhkan bagian cookie. Bagi saya, saya 1) mendaftarkan domain baru, 2) mengarahkan server nama ke host WordPress Multisite yang ada, 3) di cPanel, melakukan Add-On Domain, mengatur root dokumen sebagai public_html yang sama dengan situs utama (seperti Anda) berkata; Saya tidak mencobanya dengan cara default, dari direktori baru, jadi tidak yakin apakah itu akan berhasil), dan 4) mengubah url situs dari oldsubdomain.primarysite.com menjadi newdomain.com. Semoga saja, tidak ada masalah DNS jadi jauh.
Robert Andrews
Saya suka jawaban ini ... namun saya punya masalah. Saran Anda untuk mengubah .htaccess, karena wordpress juga memberikan modifikasi yang sama. ketika saya melakukan perubahan ini, sistem macet. Adakah ide mengapa itu terjadi?
Debbie Kurth
4

Itu mungkin tanpa plugin apa pun sejak beberapa rilis yang lalu (tidak dapat mengingat rilis konkret tetapi fitur telah ada untuk sementara waktu sekarang). Namun, jika Anda memulai dari awal, Anda harus menginstal WordPress multisite dalam mode subdomain .

Anda harus mendeklarasikan URL utama (mungkin kevin123.com) sebagai URL utama untuk jaringan (multisite). Ini disimpan di wp-config.phpdalam DOMAIN_CURRENT_SITEkonstanta dan situs (sebelumnya dikenal sebagai »blog«) menggunakan domain ini sebagai URL rumah harus memiliki ID disimpan BLOG_ID_CURRENT_SITE. Tetapi ini adalah hal standar selama proses instalasi standar.

WordPress hanya memungkinkan Anda menentukan sub-domain, saat Anda membuat situs baru. Tetapi setelah situs dibuat Anda dapat mengeditnya dan menambahkan nilai yang sepenuhnya sewenang-wenang untuk URL situs. Saya menggambarkannya beberapa waktu lalu dalam jawaban ini dengan beberapa tangkapan layar: Apakah subdomain bersarang mungkin dengan subdisite multisite?

Anda mungkin juga perlu menetapkan konstanta COOKIE_DOMANke nilai kosong di wp-config.php:

define( 'COOKIE_DOMAIN', '' );
David
sumber