"वेनिला" म्यू इंस्टॉल में कौन से एसेट URL स्वीकार्य हैं?


9

MU इंस्टॉल में कई URI द्वारा सामग्री को संबोधित करने के लिए Wordpress प्रकट होता है। उदाहरण के लिए:

 example.com/wp-content/blogs.dir/5/files/picture.jpg
 example.com/bob/files/picture.jpg
 example.com/bob/wp-content/blogs.dir/5/files/pictures.jpg

सभी एक ही स्थान पर जाने के लिए दिखाई देते हैं। वहाँ और अधिक उपनाम हैं? कौन सा विहित है? क्या इनमें से कोई भी आकस्मिक है? क्या प्रासंगिक फ़िल्टर हैं?

जवाबों:


4

संक्षिप्त जवाब

example.com/bob/files/picture.jpg वर्डप्रेस मल्टीसाइट इंस्टॉलेशन में छवियों के लिए पसंदीदा, विहित URL है । URL में दो URL blogs.dirअनिवार्य रूप से समान हैं, और दोनों ही फाइल सिस्टम संरचना का लाभ उठाते हैं। 'बॉब' के साथ पथ मौजूद है क्योंकि आपने उप-निर्देशिका स्थापित की है, उपडोमेन इंस्टॉल नहीं। अन्य पथ आपके अन्य साइटों के आधार पर मौजूद होंगे, जैसे example.com/fred/wp-content/blogs.dir/5/files/pictures.jpg। अन्यथा, कोई अन्य पथ मौजूद नहीं है।

लंबा जवाब

इस प्रक्रिया के बारे में बहुत कुछ समझा सकता है, और मैं आपके द्वारा खोजे जा रहे विस्तार के स्तर से 100% निश्चित नहीं हूं, इसलिए मैं यहां मूल बातें बताऊंगा।

वर्डप्रेस blog_idमल्टीसाइट चीजों को व्यवस्थित रखने और अलग-अलग साइटों की फाइलों को अलग करने के लिए ("5" "/blogs.dir/" के बाद) फ़ाइलों को संग्रहीत करता है। यह निर्देशिका संरचना सार्वजनिक नहीं है। वर्डप्रेस रूट ^files/(.+)करने के लिए फिर से लिखना नियमों का उपयोग करता है wp-includes/ms-files.php?file=$1, और फिर wp-includes/ms-files.phpइमेज और / या कुछ सहायक हेडर को प्रोसेस और आउटपुट करता है। इसके कुछ फायदे हैं:

  • सुरक्षा के संदर्भ में, कम जानकारी हमेशा बेहतर होती है। "wp-content / blogs.dir / 5" थोड़ा TMI है - यह कहता है कि आप वर्डप्रेस मल्टीसाइट चला रहे हैं और blog_idयह 5 है।
  • URL संरचना एकल-साइट स्थापना के समान है। यदि आप कभी भी किसी साइट को मल्टीसाइट इंस्टॉलेशन से अपने आप में स्थानांतरित करना चाहते हैं, तो आपको डेटाबेस में उन संदर्भों को अपडेट नहीं करना होगा या बाहरी संदर्भों के लिए पुराने पथ 301 को अपडेट करना होगा।
  • आप फ़ाइल निर्देशिका को सार्वजनिक पहुँच deny from allसे बाहर ले जा सकते हैं या .htaccessउदाहरण के लिए, यदि आप नहीं चाहते हैं, तो लोग मूल छवि आकारों तक नहीं पहुँच सकते।
  • आप विशिष्ट फ़ाइलों तक पहुँच नियंत्रण जोड़ सकते हैं

एक मुख्य नुकसान है, जो यह है कि चित्र / फाइलें PHP से गुजर रही हैं (और शायद कुछ MySQL प्रश्नों की भी आवश्यकता होती है), इसलिए इसे अधिक संसाधनों की आवश्यकता होती है। यदि आपके पास कैशिंग प्लगइन स्थापित है, तो अतिरिक्त संसाधन नगण्य होने चाहिए।

फ़िल्टर के संबंध में, आप इस प्रक्रिया में किसी भी कारण से आसानी से फ़िल्टर नहीं कर सकते हैं: न ही म्यू-प्लग , प्लगइन्स, या आपका विषय लोड हो गया है *। सबसे अच्छा आप कर सकते हैं wp-config.php में स्थिरांक को ओवरराइड करते हैं। यहां सबसे उपयोगी / प्रासंगिक स्थिरांक हैं जिन्हें आप ओवरराइड कर सकते हैं:

if ( !defined( 'UPLOADBLOGSDIR' ) )
    define( 'UPLOADBLOGSDIR', 'wp-content/blogs.dir' );

if ( !defined( 'UPLOADS' ) ) {
    // Uploads dir relative to ABSPATH
    define( 'UPLOADS', UPLOADBLOGSDIR . "/{$wpdb->blogid}/files/" );
    if ( 'wp-content/blogs.dir' == UPLOADBLOGSDIR )
        define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . "/blogs.dir/{$wpdb->blogid}/files/" );
}

/**
 * Optional support for X-Sendfile header
 */
if ( !defined( 'WPMU_SENDFILE' ) )
    define( 'WPMU_SENDFILE', false );

/**
 * Optional support for X-Accel-Redirect header
 */
if ( !defined( 'WPMU_ACCEL_REDIRECT' ) )
    define( 'WPMU_ACCEL_REDIRECT', false );

* भले ही प्लगइन्स लोड न हों, ड्रॉप-इन करें। इसलिए, जब आप मानक प्लगइन्स का उपयोग नहीं कर सकते हैं, तो वर्डप्रेस अभी भी जो कुछ भी ज़रूरत है उसे करने के लिए नींव देता है, जैसे (जैसा कि ऊपर उल्लेख किया गया है) संवेदनशील फ़ाइलों तक पहुंच नियंत्रण को जोड़ना। ड्रॉप-इन sunrise.phpऐसे कोड को जोड़ने के लिए एक अच्छी जगह होगी।


2

वर्डप्रेस 3.5 या बाद के संस्करण के साथ मल्टीसिट इंस्टॉल में, ms-files.phpसीधे बाईपास किया जाता है, और blogs.dirइसका उपयोग नहीं किया जाता है।

इसके बजाय, अपलोड को इसमें संग्रहीत किया जाता है wp-content/blogs/{blog_id}और इस तरह संदर्भित किया जाता है। इसका मतलब यह है कि उपडोमेन इंस्टॉल पर फ़ाइलों को एक्सेस करने का केवल एक ही तरीका है, और उपनिर्देशिका स्थापित पर केवल दो।

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