Làm thế nào để sử dụng Wordpress Multisite với các tên miền khác nhau?


18

Tôi muốn làm việc với WordPress multisite, nhưng tôi muốn có thể sử dụng tên của riêng mình. Ví dụ trang web chính của tôi được gọi example.com. Nếu tôi muốn thêm một trang web mới vào mạng nhiều trang của mình thì nó sẽ được gọi newsite.example.com. Tôi muốn nó newsite.comkhông có example. Có cách nào để đạt được điều này?

Tôi đã nghe nói về ánh xạ tên miền với một plugin, nhưng tôi không biết điều này có liên quan đến câu hỏi này không. Nếu nó có liên quan tôi muốn biết chính xác đây là gì.


Có thể đáng lưu ý rằng nếu không có plugin, bạn sẽ phải có IP chuyên dụng, ít nhất đó là sự hiểu biết của tôi.
Neal Jones

Câu trả lời:


24

Dường như luôn có một chút nhầm lẫn về chủ đề này. Có lẽ WordPress có thể thực hiện công việc tốt hơn để hướng dẫn người dùng trong quá trình này. Mặc dù, tôi cho rằng Multi-site không được sử dụng cho TLD.

Vì vậy, trước hết, tôi sẽ cài đặt WordPress , thiết lập nhiều trang và định cấu hình nó làm cấu hình mạng tên miền phụ.

Đây là một cấu hình mẫu cho wp-config.phptệp của bạn trong thư mục cơ sở của bản cài đặt WordPress của bạn:

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

Sau đó, đây là cấu hình cơ bản cho .htaccesstệp của bạn dưới dạng cấu hình tên miền phụ, trong thư mục cơ sở của bản cài đặt WordPress của bạn:

# 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

Bây giờ để làm cho TLD hoạt động chính xác, tôi đã phải thực hiện một số cấu hình bổ sung cho wp-config.phptệp như thế này:

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

Đó là với cấu hình cụ thể của WordPress.

Cá nhân, tôi muốn có một Máy chủ ảo Apache cho tên miền chính trong mạng và sau đó định cấu hình máy chủ ảo đó với các miền bí danh. Mỗi tên miền bí danh là một trong những trang web bổ sung trong mạng của bạn.

Tuy nhiên, cuối cùng bạn vẫn điều chỉnh thiết lập của mình, bạn cần DNS của mỗi tên miền để phân giải đến cùng một máy chủ web và mỗi tên miền được trỏ đến cùng thư mục mà tên miền chính được cài đặt với WordPress. Mỗi tên miền trong mạng của bạn cần trỏ đến cùng một máy chủ web có bản ghi DNS và chia sẻ cùng một đường dẫn thư mục cho các tệp được sử dụng bởi WordPress.

Khi bạn đã có mọi thứ được cấu hình và thiết lập đúng như đã thảo luận ở trên. Đăng nhập vào khu vực quản trị WordPress của bạn và điều hướng đến khu vực quản trị Mạng để thêm một trang web mới vào mạng của bạn.

Khi bạn đi đến để thêm một trang web, nó sẽ buộc bạn thêm trang web như thể đó là một tên miền phụ dưới tên miền chính của bạn. Chỉ cần cuộn với nó. Nhập một cái gì đó tạm thời.

Khi trang web đã được thêm, sau đó đi tìm nó trong danh sách các trang web trong mạng của bạn. Nhấp vào chỉnh sửa trên trang web cụ thể đó. Bây giờ, bạn hoàn toàn có thể thay đổi 100% tên miền của trang web đó. Đó là khi bạn sẽ đặt tên miền thực cho trang web TLD này.

Tôi biết đó là một mẹo nhỏ để làm theo cách đó, nhưng nó hoạt động và bạn không cần phải sử dụng bất kỳ plugin nào.


Cảm ơn vì điều này, dường như hoạt động - và dường như nó cần phần cookie. Đối với tôi, tôi 1) đã đăng ký một tên miền mới, 2) hướng máy chủ tên của nó về máy chủ WordPress Multisite hiện tại của tôi, 3) trong cPanel, đã tạo một Tên miền bổ trợ, đặt gốc tài liệu là cùng một trang web_html làm trang web chính (như bạn nói, tôi đã không thử nó một cách mặc định, trong một thư mục mới, vì vậy không chắc chắn nếu điều đó sẽ làm việc), và 4) thay đổi url subsite từ oldsubdomain.primarysite.com để newdomain.com ngón tay vượt qua, không có vấn đề DNS để xa.
Robert Andrew

Tôi thích câu trả lời này ... nhưng tôi có một vấn đề. Đề xuất của bạn để thay đổi .htaccess, vì wordpress cũng đưa ra sửa đổi tương tự. Khi tôi thực hiện thay đổi này, hệ thống gặp sự cố. Bất kỳ ý tưởng tại sao đó sẽ là?
Debbie Kurth

4

Có thể không có bất kỳ plugin nào kể từ một số bản phát hành trước đây (không thể nhớ bản phát hành cụ thể nhưng tính năng này đã có ở đó một thời gian rồi). Tuy nhiên, nếu bạn bắt đầu từ đầu, bạn nên cài đặt nhiều trang WordPress trong chế độ tên miền phụ .

Bạn phải khai báo một URL chính (có thể kevin123.com) là URL chính cho mạng (multisite). Điều này được lưu trữ trongwp-config.php trong DOMAIN_CURRENT_SITEliên tục và địa điểm (trước đây gọi là »Blog«) sử dụng tên miền này vì URL trang chủ phải có ID lưu trữ trong BLOG_ID_CURRENT_SITE. Nhưng đây là công cụ mặc định khá nhiều trong quá trình cài đặt tiêu chuẩn.

WordPress chỉ cho phép bạn chỉ định tên miền phụ khi bạn tạo một trang web mới. Nhưng sau khi trang web được tạo, bạn có thể chỉnh sửa nó và thêm một giá trị hoàn toàn tùy ý cho URL trang web. Tôi đã mô tả nó một thời gian trước trong câu trả lời này với một số ảnh chụp màn hình: Có thể các tên miền phụ được lồng với một tên miền phụ?

Bạn cũng có thể cần đặt hằng số COOKIE_DOMANthành một giá trị trống trong wp-config.php:

define( 'COOKIE_DOMAIN', '' );
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.