একটি ডাব্লুপি মাল্টিসাইটকে একটি উপ-ডিরেক্টরিতে সরানো


20

প্রথমত, আমি এই প্রক্রিয়াটিতে বেশ কয়েকটি পোস্ট পড়েছি । যাইহোক, বিভিন্ন কারণে, এমনকি বিমূর্ত উদাহরণের অভাব, বা খুব বিমূর্তভাবে অভাবের কারণে প্রক্রিয়াটি কার্যকর করা বা সমস্যা সমাধান করা কঠিন হয়ে পড়ে। এবং কয়েকটি "না করতে পারে" এমন পোস্ট রয়েছে যা প্রায় 3.5 এর সাথে অনুসরণ করা হয়, আপনি এখন "সাবধানতা অবলম্বন" করতে পারেন, তবে কোনও সন্দেহ দ্বিধাহীন, যদিও সন্দেহ নেই।

সারসংক্ষেপ:

কীভাবে একটি ওয়ার্ডপ্রেস মাল্টিসাইট (ডাব্লুপিএমএস) কে ডট কম থেকে রুট / ব্লগে সরানো যায়?

এই উদাহরণের জন্য, আমরা একটি "ডাব্লুপিএমএস" "ডটকম" থেকে "রুট.com/ ব্লগস" এ চলেছি

আমি বুঝতে পারি যে আমার ডাটাবেস এবং wp-config.php সঠিকভাবে আপডেট করতে হবে। মনে হচ্ছে আমারও .htaccess আপডেট করতে হবে? আমি অনুসন্ধান / প্রতিস্থাপন এবং মাইএসকিউএল কোয়েরি আপডেটের সাথে সিরিয়ালাইজেশন ইস্যু সম্পর্কেও সচেতন।

আমার একটি ডাব্লুপিএমএস রয়েছে যা আমি 3.5 এ আপডেট করেছি। আমি ডোমেন এবং পথের তথ্য সহ নিম্নলিখিত সারণীগুলি পেয়েছি

উপ-ডিরেক্টরিতে সরানোর আগে বিদ্যমান কার্যকারী কনফিগারেশন

1. wp_blogs

select blog_id, domain, path from wp_blogs;
+---------+-------------+--------+
| blog_id | domain      | path   |
+---------+-------------+--------+
|       1 | root.com    | /      |
|       2 | root.com    | /matt/ |
+---------+-------------+--------+

2. wp_site

select * in wp_site;
+----+-------------+------+
| id | domain      | path |
+----+-------------+------+
|  1 | root.com    | /    |
+----+-------------+------+

৩. ব্লগ_আইডি ডাব্লুপিপি _ # _ বিকল্পের সারণীর সাথে সম্পর্কিত যা এতে রয়েছে:

select option_name,option_value from wp_2_options 
where option_name = 'home' or option_name = 'siteurl';
+-------------+--------------------------+
| option_name | option_value             |
+-------------+--------------------------+
| home        | http://root.com/matt/    |
| siteurl     | http://root.com/matt/    |
+-------------+--------------------------+

4. আমার সালে WP-config.php আমি নিম্নলিখিত WPMS-নির্দিষ্ট লাইন আছে:

define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false);
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'root.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

৫. অবশেষে, আমার .htaccess এ আমার কাছে রয়েছে:

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

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

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

সাইটটি সরানোর জন্য আপডেটগুলি প্রয়োজন

আমার কাছে মনে হয় যে আমার সাইটটি / ব্লগগুলিতে সরাতে আমি চাই:

1. wp_blogs এ আপডেট করুন

mysql> update wp_blogs set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
select blog_id, domain, path from wp_blogs where blog_id < 3;
+---------+-------------+--------------+
| blog_id | domain      | path         |
+---------+-------------+--------------+
|       1 | root.com    | /blogs/      |
|       2 | root.com    | /blogs/matt/ |
+---------+-------------+--------------+

2. wp_site আপডেট করুন

update wp_site set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
select * from  wp_site;
+----+-------------+------------+
| id | domain      | path       |
+----+-------------+------------+
|  1 | root.com    | /blogs/    |
+----+-------------+------------+

3. wp _ # _ বিকল্পগুলি

+-------------+--------------------------------+
| option_name | option_value                   |
+-------------+--------------------------------+
| home        | http://root.com/blogs/matt/    |
| siteurl     | http://root.com/blogs/matt/    |
+-------------+--------------------------------+

4. wp_config.php

define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false);
$base = '/blogs/';
define( 'DOMAIN_CURRENT_SITE', 'root.com' );
define( 'PATH_CURRENT_SITE', '/blogs/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

দ্রষ্টব্য: এই পদক্ষেপটি কীভাবে যথাযথভাবে আপডেট করা হয়েছে তা আমি পরিষ্কার করছি না

5. .htaccess

আমি অস্পষ্ট "আপডেট .htaccess যথাযথভাবে" নির্দেশাবলী পেয়েছি, তবে সুনির্দিষ্ট নয়। পুনর্লিখনকে আপডেট করবেন? রুট ডট কমকে ব্লগ ব্লগগুলিতে সরিয়ে নিয়ে যাওয়ার সময় আমি কোন লাইনটি আপডেট করব?

উপরের প্রক্রিয়াটি থেকে অনুপস্থিত হ'ল পোস্টগুলিতে পাথগুলি পাওয়া যাবে। আমার ড্রাথাররা অনুসন্ধানের ব্যবহার করতে হবে এবং তার জন্য সরঞ্জামটি প্রতিস্থাপন করবে, আমি এই আরও মৌলিক আপডেটগুলি করার পরে; আমি নাকি ভুল করছি?

আপডেট বাংগেশিয়া পরামর্শ দেয় যে, হ্যাঁ, আমি রিভারাইটবেজকে "ব্লগগুলি" উপ-ডিরেক্টরিতে নির্দেশ করেছি, অর্থাৎ,

RewriteBase /Blogs

শেষ অবধি, আপনি যদি http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ সম্পর্কে জানেন না । এটা দুর্দান্ত।


3
দুর্দান্ত প্রশ্ন, দুর্দান্ত প্রক্রিয়া +1
কায়সার

1
এটা শুধু আমার? আমি মনে করি, প্রক্রিয়াটির অনুসন্ধানগুলি সঠিক নয় update wp_blogs set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/'); বরং হওয়া উচিতupdate wp_blogs set path=concat('/blogs',path);
এমআর

উত্তর:


7

আমি জানি এটি পুরানো তবে আমি এটি ঠিক করেছি! আমি একটি সাবফোল্ডারে WP MU ইনস্টল করেছি installed htaccess:

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

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule ^(.*\.php)$ YOUR_SUBFOLDER/$1 [L]
RewriteRule . index.php [L]

wp-config.php:

define( 'WP_ALLOW_MULTISITE', true ); 
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'localhost'); // or your host
define('PATH_CURRENT_SITE', '');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

এবং আপনার ডাটাবেসে, এটি সংশোধন করুন:

wp_site
domain: localhost (OR your domain but no subdirectory!)
path: /

wp_blogs
domain: localhost (OR your domain but no subdirectory in each blog_id!)
path: /

wp_sitemeta
siteurl: http://localhost/YOUR_SUBFOLDER (replace localhost with your host)

এটি অবিশ্বাস্যভাবে সহায়ক ছিল। আমার একটি সাবডোমেন ইনস্টল এবং একটি ডাটাবেস ডাম্প এবং সাইটের জিপ ছিল। আমার এটি একটি নতুন সার্ভারে পুনরুদ্ধার করা দরকার, এবং ম্যানুয়ালি সাইট আপডেট করতে হয়েছিল। ডাটাবেস আপডেটগুলি আমার সবচেয়ে বেশি প্রয়োজনীয় ছিল। ধন্যবাদ!
জ্যাকব র্যাকুইয়া

2

আমার কাছে দেখে মনে হচ্ছে আপনি নিজের সমস্যাটি সমাধান করেছেন - আপনার 1-5 পদক্ষেপ অনুসরণ করুন এবং 5 ধাপের জন্য RewriteBaseইন- টি আপডেট করুন .htaccess। পোস্টগুলিতে পাথগুলি আপডেট করার জন্য, আমি আন্তঃসংযোগ আইটি নির্বীজিত অনুসন্ধান এবং প্রতিস্থাপন সরঞ্জামটি ব্যবহার করতে চাই ।


ধন্যবাদ, বাংসিয়া আমি আমার পোস্টে ইঙ্গিত হিসাবে, RewritBase আপডেট করুন উপরের উদাহরণ অনুসারে, ঠিক কী? তা কি হবে: রিরাইটবেস / ব্লগ?
স্ক্রিন্যাক

হ্যাঁ:RewriteBase /blog
শেয়া

Bungshea; সম্পন্ন, কিন্তু এখনও কাজ করে না। উপরের সমস্তটির পরেও "ডাটাবেস সংযোগ স্থাপনে ত্রুটি" পাওয়া যাচ্ছে। সবচেয়ে খারাপ, আমার অ্যাপাচি ত্রুটি লগতে কোনও ত্রুটি নেই।
স্ক্রিন্যাক

@ স্ক্রিনাক "ডাটাবেস সংযোগ স্থাপনে ত্রুটি" এর বৈশিষ্ট্যগুলি কী? ইঙ্গিত: দর্শনwp-admin
shea

1

ঠিক আছে আমি এখানে যা করেছি এবং এটি কাজ করেছে। সাব-ফোল্ডার নেই। সাইটটি পূর্বে সাবডোমেনে কনফিগার করা হয়েছিল।

প্রথম ব্যাকআপ !!!

wp-config.php (আপনার ফাইলের ব্লকের সাথে এই ব্লকটি প্রতিস্থাপন করুন)

define('WP_ALLOW_MULTISITE', true ); 
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'no-www-in-sitename.com'); // your host
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

.htaccess

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

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

এখন এসকিউএল ডিবিতে:

1) প্রতিটি ডাব্লুপি_এর জন্য (সাইট #) _ টেবিলসুফিক্স অপশন টেবিলটিতে যান এবং সাইটুরল এবং হোম এতে পরিবর্তন করুন http://www.sitename.com/blogname

2) থেকে প্রতিটি blog_id পরিবর্তনের জন্য ডোমেইন wp_blogs blogname.domain.comকরতে domain.comএবং পাথ/blogname/

3) যদি ইনস্টলটি একই জায়গায় থাকে তবে ডাব্লুপিওপশনস সাইটুল এবং হোম বা ডাব্লুপি_সাইট বা wp_sitemeta এর কোনও ঘর পরিবর্তন করার দরকার নেই।

আপনার কাজ শেষ হয়ে যাওয়ার পরে (সুপারিশার অ্যাডমিন প্যানেলে) সেটিংস> পারমালিক্সে গিয়ে নিশ্চিত করুন ক্লিক করুন click

ভাল খবর!


0

এটি আমার প্রথম উত্তর তাই দয়া করে বিবেচনা করুন! :)

আমার কাছে এমন একটি ব্লগ নেই যা রূপান্তরিত হওয়ার জন্য ইতোমধ্যে সাবডোমেনগুলিতে ছিল। তবে আমাকে লড়াই করতে হয়েছিল কারণ এটি একটি পুরাতন ব্লগ এবং তারা আমাকে একটি উপ-ডিরেক্টরি ব্লগ তৈরি করতে দেবে না এবং আমি আশঙ্কা করেছি যে ডাব্লুপি আমার ডিবিতে পরিবর্তন করার সময় তারা আমাকে কোডগুলি দেওয়ার সময় দিয়েছিল।

এপ্রিল 2018 এর ছেলেরা আমার জন্য এটি কাজ করেছিল ... আমি হট_বারবার থেকে ডাব্লুপি-কনফিগারেশন ব্যবহার করেছি এবং তাদের থেকে .htaccess ব্যবহার করেছি।

অতএব, দয়া করে একটি সাবফোল্ডারের জন্য যান না - আমি করিনি!

তবুও, এসকিউএল ডিবিতে, আমার ক্ষেত্রে এটিই ঘটেছিল - এটি ইতিমধ্যে এইভাবে ছিল তাই আমি কোনও পরিবর্তন করি নি:

  1. wp_site ডোমেন: xyzabc.com পাথ: /

wp_blogs ডোমেন: xyzabc.com পাথ: /

wp_sitemeta সাইটurl: h ** PS: //xyzabc.com/

আপনি - আমি যেমন বুঝতে পেরেছি - আপনার সেটিংসে যদি এটি থাকে তবে আপনি একটি অনুসরণীয় স্ল্যাশ ব্যবহার করবেন।


0

wp-config.phpএই কোড দিয়ে আপনার আবার লিখুন

define('SUBDOMAIN_INSTALL', false);

পরিবর্তে define('SUBDOMAIN_INSTALL', true);

তারপরে গেলো:

http://www.website.com/wp-admin/network/setup.php

তারপর:

অন্যান্য ওয়ার্ডপ্রেস বিধিগুলি প্রতিস্থাপন করে /var/www/vhosts/website.com/ এ আপনার .htaccess ফাইলে নিম্নলিখিতটি যুক্ত করুন:

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

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

এটাই.

সাব-ডিরেক্টরি সহ একটি নতুন সাইট তৈরি করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.