तीसरे स्तर के डोमेन के साथ एक वर्डप्रेस नेटवर्क स्थापित करना


11

मैं एक WordPress network install करने की कोशिश कर रहा हूँ। जब तक मैं अपने इच्छित डोमेन लेआउट के लिए अच्छी तरह से फिट नहीं हो जाता, तब तक सब कुछ बहुत आसानी से हो रहा है।

मैं इस प्रकार एक लेआउट रखना चाहता हूं:

ब्लॉग। *। stackexchange.com

इसलिए उदाहरण के लिए, मैं एक नेटवर्क में कई साइटें रखना चाहूंगा जो दिखती हैं:

blog.wordpress.stackexchange.com
blog.apple.stackexchange.com
ब्लॉग। $ site.stackexchange.com

मुझे लगता है कि मैं इसे कुछ रचनात्मक फिर से लिखने के नियमों के साथ काम कर सकता हूं, और डीएनएस हस्तक्षेप को मैनुअल कर सकता हूं, लेकिन मेरे पास एक सेटअप है जहां मैं सब कुछ के निर्माण को बंद कर सकता हूं लेकिन डीएनएस किसी और को (हम पहले से ही स्वचालित रूप से एक प्रक्रिया है) DNS में आवश्यक सभी उप-डोमेन बनाना)

मेरे चारों ओर खेलने और पढ़ने से WP वास्तव में साइटों को अगले स्तर का डोमेन बनाना चाहता है, इसलिए मेरे उपरोक्त उदाहरण में, यह चाहता है कि मुख्य WP ब्लॉग stackexchange.com पर हो और नेटवर्क ब्लॉग wordpress.stackexchange.com पर हों।

क्या मेरे इच्छित प्रभाव को प्राप्त करने का कोई तरीका है या मुझे सिर्फ blog.stackexchange.com/$site करने का मार्ग जाना चाहिए?


2
मुझे पूरा यकीन है कि आपको रचनात्मक री-राइट नियम और मैन्युअल DNS हस्तक्षेप का उपयोग करना होगा। मुझे यह भी पक्का पता है कि यह बाय-डिज़ाइन है, ताकि आप हर चीज़ के निर्माण को बंद न कर सकें लेकिन DNS को <del> me </ del> <ins> किसी और </ ins> ... सीटी </ व्यंग्य> (:
रेबेका चेरोफ़

मैंने इस उम्मीद में एक इनाम जोड़ा है कि कोई व्यक्ति कदम गाइड द्वारा एक अच्छा कदम के साथ आता है, इसलिए Zypher एसई को बनाए रखने और सामुदायिक ब्लॉगों में कम समय देखने के बारे में चिंता करने में अधिक समय बिता सकता है।
कोई नहीं

जवाबों:


3

आप इसके लिए डोमेन मैपर प्लगइन का उपयोग कर सकते हैं । दोष यह है कि आपने मैन्युअल रूप से प्रत्येक सबब्लॉग को कॉन्फ़िगर किया होगा।


दिलचस्प है, क्या यह एक अनुप्रेषित करता है या सिर्फ सामग्री परोसता है? मुझे लगता है कि मैं क्या पूछने की कोशिश कर रहा हूं क्या अंत उपयोगकर्ता के लिए पता बार बदल जाता है?
ज़ीरोफ़

@Zypher नहीं, यह केवल सामग्री परोसता है।
कोई नहीं

1
प्लगइन का उपयोग करने के लिए ट्यूटोरियल: ottopress.com/2010/… महत्वपूर्ण: यह समस्याओं के बिना है, जब आप WP स्थापित करते हैं और प्लगइन को सक्रिय करते हैं और इसके बाद आयात डेटा या मोइग्रेट सिस्टम; डोमेन मैपिंग से पहले ब्लॉग होने के बाद इस प्लगइन को जोड़ना आसान नहीं है। यह wp के काम को थोड़ा आसान बनाने के लिए अन्य प्लगइन्स भी देता है। wordpress.org/extend/plugins/networks-for-wordpress
bueltge

विकल्प की कमी के कारण, +150 प्रतिनिधि हैं।
कोई

1

आप यह एक अनुकूलित सूर्योदय के साथ कर सकते हैं। php फ़ाइल। यह अनिवार्य रूप से डोमेन मैपिंग प्लगइन कैसे काम करता है, हालांकि यह इस पर एक सुंदर फ्रंट एंड डालता है। कुछ कस्टम के लिए, आप मूल रूप से एक ही काम करने के लिए कुछ सरल PHP लिख सकते हैं।

मल्टीसाइट के सार में यह पता लगाना शामिल है कि किस साइट पर सेवा देनी है। डोमेन मैपिंग प्लगइन एक wp_domain_mapping तालिका बनाकर, और उसमें जानकारी संग्रहीत करके करता है। इस प्रकार जब इसे xxx.com के लिए अनुरोध मिलता है, तो यह उस तालिका में दिखता है और देखता है कि यह ब्लॉग_ड 123 से मेल खाता है।

सबसे पहले, एक वर्डप्रेस सेटअप बनाएं, और इसे मल्टीसाइट करें। कोई फर्क नहीं पड़ता कि यह वास्तव में कहाँ रहता है, क्योंकि हम वह सब बदलने जा रहे हैं। सरलता के लिए, मैं इसे blog.stackexchange.com पर रखूंगा और इसे एक उपनिर्देशिका प्रकार की साइट (वे आसान हैं) बना देंगे। निर्मित उपनिर्देशिका संभवतः स्लग होगी। / वर्डप्रेस, / सेब, / जो भी हो।

तो हाँ, के साथ शुरू करने के लिए, आप वास्तव में इसे blog.stackexchange.com/wordpress पर लाइव कर रहे हैं। अपने मंचन के माहौल पर विचार करें। जब आप प्रत्येक साइट बनाते हैं, तो आप यहां सामान कर सकते हैं जब तक आप मैपिंग चालू करने का निर्णय नहीं लेते।

अपने आप को डोमेन मैपिंग करने के लिए, प्लगइन के बिना, आप कुछ इस तरह करेंगे:

चरण एक: define( 'SUNRISE', 'on' );अपने wp-config.php फ़ाइल के शीर्ष पर जोड़ें ।

चरण दो: wp-content निर्देशिका में एक sunrise.php फ़ाइल बनाएँ। <?phpशुरू करने के लिए शीर्ष पर रखें ।

चरण तीन: सूर्योदय। Php फ़ाइल में यह निर्धारित करने के लिए आपका तर्क होने वाला है कि किस साइट को लोड करना है।

आप इसे $_SERVER[ 'HTTP_HOST' ]चर पर आधारित करने जा रहे हैं । आप यह कैसे करते हैं कि यह बिल्कुल आसान है: हालाँकि आप इसे करना चाहते हैं। यदि आप केवल देखने के लिए regex लिखना चाहते हैं '/blog\.(.*)\.stackexchange\.com/'और फिर डेटाबेस में उस बिट की तलाश करते हैं, तो आप ऐसा कर सकते हैं।

चूँकि आप यहाँ "उपनिर्देशिका" के रूप में एक ही स्लग का उपयोग कर रहे हैं, इसलिए आपको एक अलग तालिका की आवश्यकता नहीं है। जिस साइट की आपको आवश्यकता है, उसे खोजने के लिए आप मुख्य wp_blogs तालिका में देख सकते हैं। इसके समान कुछ:

$current_blog = $wpdb->get_var( "SELECT blog_id FROM {$wpdb->blogs} WHERE path = '/wordpress/' LIMIT 1" );

एक बार जब आपके पास $ current_blog हो जाता है, तो आपको निम्न कोड की आवश्यकता होती है:

$current_blog->domain = $_SERVER[ 'HTTP_HOST' ];
$current_blog->path = '/';
$blog_id = $current_blog->blog_id;
$site_id = $current_blog->site_id;
$current_site = $wpdb->get_row( "SELECT * from {$wpdb->site} WHERE id = '{$current_blog->site_id}' LIMIT 0,1" );
$current_site->blog_id = $current_blog->blog_id;

यह वर्डप्रेस के एमयू कार्यों को करने के बजाय $ current_blog और $ current_site वैश्विक चर को परिभाषित करता है।

यह साइट को प्राप्त करने और काम करने के लिए पर्याप्त होगा (आपके DNS को इंगित करने के लिए और वर्चुअल होस्टिंग सामग्री को हल करने के बाद), हालांकि HTML कोड में उपयोग किए जाने वाले अधिकांश स्थिर URL अभी भी blog.stackexchange.com को इंगित करेंगे। / वर्डप्रेस, क्योंकि यह वह जगह है जहां साइट वास्तव में होगी। इसके अलावा, Canonical URL फ़ंक्शन संभवतः URL को पसंद नहीं करेगा और आपको भी रीडायरेक्ट करेगा।

इन समस्याओं के समाधान के लिए, आप संभवतः साइट से जुड़े कई URL को पूर्व-परिभाषित करना चाहेंगे। WP_SITEURL और WP_HOME जैसी चीजें। इसके अलावा, WP_CONTENT_URL, WP_PLUGIN_URL और WPMU_PLUGIN_URL। उस URL के अधिकांश मामलों को समायोजित किया जाना चाहिए।

अंत में, आप 'COOKIE_DOMAIN' सेट करना चाहते हैं। चूँकि आप संभवतः चाहते हैं कि लॉगिन को पूरी चीज़ में साझा किया जाए, तो आप इसे stackexchange.com पर सेट कर सकते हैं, या इससे भी अधिक यदि आप नहीं चाहते कि उन्हें साझा किया जाए।

यदि आप सामान्य स्टैकएक्सचेंज लॉगिन सिस्टम को वर्डप्रेस में एकीकृत करने के बारे में बात करना चाहते हैं, तो मैं उस पर भी सवालों के जवाब दे सकता हूं, लेकिन यह एक उत्तर का थोड़ा और विस्तृत होगा। :)

यदि आप इसके साथ और अधिक सहायता चाहते हैं तो मुझे बेझिझक ईमेल करें। सहायता के लिए खुशी: wordpress.org पर otto।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.