मैं अपने वर्डप्रेस को htaccess के जरिए कैसे स्थापित करूं?


9

(मुझे पता है कि अश्लीलता के माध्यम से सुरक्षा की सिफारिश नहीं की जाती है)।

मैं इस तथ्य को छिपाने की कोशिश कर रहा हूं कि मैं Wordpress का उपयोग कर रहा हूं। यह पोस्ट सहायक है, लेकिन यह केवल सामग्री (प्रकार) को संबोधित करती है। मैं निम्नलिखित होने में दिलचस्पी रखता हूं:

  1. उपयोगकर्ता wp*अपने ब्राउज़र के माध्यम से विकल्प के रूप में किसी भी यूआरएल को एक्सेस करने की कोशिश करता है।

    परिणाम: 404 पृष्ठ पर पुनर्निर्देशित।

  2. ब्लॉग उपयोगकर्ता / प्रशासक को पता है कि उन्हें लॉगिन करना चाहिए http://example.com/blogin/

    परिणाम: अपाचे उन्हें पुनर्निर्देशित करता हैhttp://example.com/wp-admin/

  3. यदि कोई उपयोगकर्ता wp-adminअपने ब्राउज़र से सीधे एक्सेस करने का प्रयास करता है तो उन्हें # 1 पर भेजा जाता है।

    परिणाम: 404 पृष्ठ पर पुनर्निर्देशित।

चीजें जो मैंने अब तक की हैं

  1. मैंने वर्डप्रेस की एक डिफ़ॉल्ट स्थापना के लिए ध्यान दिया कि मैं wp*WP इंस्टाल की (रिश्तेदार) रूट डायरेक्टरी की किसी भी फाइल को एक्सेस कर सकता हूं । विशेष रूप wp-settings.phpसे समस्याग्रस्त था क्योंकि इसने मेरे सेट-अप के बारे में जानकारी दी थी। यदि कोई उपयोगकर्ता इसे एक्सेस करता है, तो यह कुछ PHP त्रुटियों को उगल देगा और निर्देशिका संरचना का हिस्सा प्रकट करेगा। मैंने अपनी php.ini फ़ाइल को display_errorsबंद करने के लिए संपादित किया । अब एक्सेस http://example.com/wp-settngs.phpकरने से एक खाली पेज आता है।

  2. यह अपने आप में आदर्श नहीं है क्योंकि यह पता चलता है कि wp-settings.phpमौजूद है। वास्तव में, सभी अलग-अलग wp*फ़ाइलों तक पहुंच संभव है (विभिन्न परिणामों के साथ)। मैंने तब अपनी htaccess फ़ाइल में निम्नलिखित डाला:

          RewriteEngine On
          RewriteBase /
          RewriteCond %{PATH_INFO} wp* [NC]
          RewriteRule .* - [F]
    

    यह महान काम किया! wp*मेरे कस्टम 404 पृष्ठ पर कुछ भी रूट किया गया था। लेकिन अब मैं अपने व्यवस्थापक पृष्ठ तक नहीं पहुँच सकता।

  3. मैंने इस कोड को उपरोक्त कोड में डालने की कोशिश की RewriteRule ^blogin wp-admin [NC,R,L]:। यह सही होने के बाद माना जाता था RewriteBaseलेकिन यह काम नहीं किया।

  4. मैंने करने की कोशिश की:

    <Directory /home/example/wp*> 
     Order Allow, Deny 
     Allow from example.com 
     Deny from all 
    </Directory> 
    

    यह उम्मीद करना कि मेरी साइट से एक संदर्भकर्ता (नियम के पुनर्लेखन के माध्यम से) wp-admin का उपयोग करने में सक्षम होगा, लेकिन बाहर से कोई नहीं। यह भी काम नहीं किया। अपाचे ने शिकायत की कि आप htaccess से इस निर्देश का उपयोग नहीं कर सकते।

मैंने अपाचे प्रलेखन पढ़ा है; मैं अवधारणाओं को सैद्धांतिक रूप से समझता हूं, लेकिन मुझे कुछ व्यावहारिक मदद की आवश्यकता है।

संपादित करें: मैं एक ऐसे समाधान की तलाश कर रहा हूं जो httpd.conf के बजाय .acaccess का उपयोग करता है क्योंकि मेरा विशेष सेटअप httpd.conf असंगत का उपयोग करता है।


क्या आपने सभी wp * फाइलों को एक अलग उपसर्ग में बदलने की कोशिश की है और साथ ही ऐसी फाइलों के सभी संदर्भों को भी बदल दिया है? मुझे लगता है कि यह करना सबसे आसान काम होगा। बेशक, आप URL पुनर्लेखन के साथ जा सकते हैं, लेकिन फिर आपको यह सुनिश्चित करना होगा कि सभी लिंक wp * नामों का उपयोग नहीं कर रहे हैं, जो मूल सुझाव के समान है (मेरी राय में)।
लेज़ीऑन

मुझे लगता है कि URL पुनर्लेखन का एक लाभ यह है कि अनुरोध किए गए संसाधनों को दूसरे उपसर्ग के लिए फिर से तैयार किया जा सकता है ... मुझे उम्मीद है कि मैं सभी फ़ाइलों का नाम लिए बिना ऐसा कर सकता हूं (जो इस के माध्यम से जाने की बात है) ...
एवरी चान

जवाबों:


8

TLDR; केवल आपकी .htaccess फ़ाइल में निर्देशों का उपयोग करके वर्डप्रेस को अस्पष्ट करना संभव नहीं है।

अब शोक और आतंक की एक कहानी को याद करते हैं। हमारा दोस्त, fbh वर्डप्रेस को छिपाने में कठिनाई के बारे में सही था, यह पीले-बेल वाले कायरों के लिए नहीं है। आगमन! इस (गलत) साहसिक कार्य का विवरण यहाँ दिया गया है। हां चेतावनी दी हो!

प्रेरणा

मैं उन लोगों में से हूं जो चीजों को परफेक्ट पसंद करते हैं। मैं होगा खर्च बेकार समय के साथ-इंजीनियरिंग कुछ 'सही तरीके से' किया जाना है। डिफ़ॉल्ट वर्डप्रेस सेटअप के बारे में जो चीजें मुझे पसंद नहीं थीं, उनमें से एक यह थी कि कोई उपयोगकर्ता http://ex.com/wp-settings.php में टाइप कर सकता है और फिर यह सभी php शब्दजाल सभी जगह होगा। मैं अंततः PHP के माध्यम से त्रुटियों को बंद करने में सक्षम था, लेकिन इससे केवल सर्वर से स्थानीय संसाधनों के बनने के बाद और अधिक चीजें होने की इच्छा पैदा हुई ... और वह सब कुछ हमारे कस्टम खोज पृष्ठ पर 404 / 3''F'E होगा। उसके बाद मुझे यह विचार आया कि मैं अंतर्निहित ढांचे (यानी WP) को पूरी तरह से छिपाना चाहूंगा ... वैसे भी ... यदि आप WP को छिपाना चाहते हैं तो यह संभव है। लेकिन यह वास्तव में कठिन है।

अपने कयामत के कदम

  1. अपनी PHP इनआई सेटिंग्स को उचित रूप से संशोधित करें। (यानी टर्न डिस्प्ले एरर ऑफ करें) आप सोच सकते हैं कि यह अनावश्यक है क्योंकि अगर हम चीजों का पुनः प्रयोग कर रहे हैं। चीजों को रिसोर्स करना चाहते हैं, तो लोग त्रुटियों को नहीं देखेंगे क्योंकि वे एरर के कारण संसाधनों तक नहीं पहुंच सकते हैं (मैं आपको देख रहा हूं wp-settings.php)। लेकिन प्रदर्शित पृष्ठों में त्रुटियां हो सकती हैं, इसलिए आप निश्चित रूप से उन्हें बंद करना चाहते हैं। सिर्फ इसलिए कि WP_*निर्देश निर्धारित हैं इसका मतलब यह नहीं है कि चीजें आपके सोचने के तरीके पर काम करेंगी। मैंने पाया कि मेरे सर्वर पर मुझे FIRST को झूठी FIRST के लिए सेट करना पड़ा, क्योंकि WP_DISPLAY_ERRORS ने माना कि डिफ़ॉल्ट सेटिंग झूठी थी।

    PHP ini सेटिंग्स को नियंत्रित करना आपके .htaccess फ़ाइल में एक निर्देशन डालने के समान सरल हो सकता है। या, मेरे मामले में, सीजीआई हैंडलर बनाने और फिर एक php.ini फ़ाइल डालने के रूप में जटिल है। आपके सेट-अप के आधार पर YMMV।

  2. wp-उपसर्ग के साथ फ़ाइलों / निर्देशिकाओं तक सभी पहुंच निकालें । विचार यह है कि आपका WP परिनियोजन आपकी सामग्री के बारे में है, WP के बारे में नहीं (जब तक कि यह विशेष रूप से WP पर केंद्रित न हो)। यह लोगों के लिए समझ में नहीं आता है कि वे क्या देखना चाहते हैं http; // ex.com/wp-cron.php है ... जब तक कि वे अच्छे नहीं हैं। मैंने इसे इसके माध्यम से पूरा किया:

     # If the resource requested is a `wp-*` file or directory, poop to a 403. 
     RewriteCond %{REQUEST_FILENAME} wp-.*$ [NC] 
     RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
     RewriteCond %{REQUEST_FILENAME} -f [NC,OR] 
     RewriteCond %{REQUEST_FILENAME} -d [NC] 
     RewriteRule .* - [F,L] 
    
  3. जानें कि केवल मोर्डर से कैसे गुजरना है wp-*आप तक पहुंच को दूर करके अब आप WP के प्रशासनिक भाग तक पहुंच प्राप्त नहीं कर सकते। कि वास्तव में बेकार है। उस अधोगति के अतिरिक्त, आपको बस एहसास हुआ है कि आप नहीं जानते कि RewriteCond %{ENV:REDIRECT_STATUS} ^$वास्तव में क्या करता है। खैर, मैंने जो करने की कोशिश की, वह है खुद को WP एडमिन पेज पर 'सीक्रेट' बैकडोर देना। मैंने इस कोड का उपयोग किया है:

     # If the resource requested is 'mordor' (with or without an ending
     # slash) do a URL rewrite to `wp-login.php`. 
     RewriteCond %{REQUEST_URI} mordor/?$ [NC]
     RewriteRule mordor/?$ /wp-login.php [NC,L]
    

    तो URL: http://ex.com/mordor हमें लॉगिन पेज पर लाना चाहिए। REDIRECTऊपर चरण में हमारे पास लाइन होने का कारण यह है कि चूंकि यह URL किसी URL पर फिर से लिखा जाता है wp-*, इसलिए हम नहीं चाहते कि पहला पुनर्लेखन नियम इसे प्राप्त करें। चूंकि इसे आंतरिक रूप से पुनर्निर्देशित किया जा रहा है, REDIRECT_STATUSइसे सही ढंग से सेट किया जाएगा और यह हमें 403/4 भूमि पर नहीं ले जाएगा।

  4. Wp-content को हटाएं Wordpress.stackexchange में wp-content को हटाने का एक शानदार लेख है। आपको कुछ WP स्थिरांक को फिर से परिभाषित करना होगा और यह बहुत अधिक काम करता है। आपको सभी एक्सेस wp-contentको 'जो भी-कंटेंट' से रीडायरेक्ट करना होगा। यह शायद एक मुद्दा नहीं होगा अगर यह एक साफ तैनाती है। यदि आप पहले से मौजूद तैनाती को संशोधित कर रहे हैं, तो आपको कुछ अतिरिक्त चीजें करनी होंगी।

  5. वैकल्पिक wp-content के लिए URL फिर से लिखेंRewriteRule (.*)(wp-content)(.*) $1whatever-content$3 [NC,R,L] । यह आपकी .htaccess फ़ाइल में जाता है। यदि आपका उपयोगकर्ता किसी wp-contentURL के माध्यम से कुछ पुरानी सामग्री तक पहुंचने का प्रयास करता है , तो यह यहां पुनर्निर्देशित हो जाएगा।

  6. अपने DB वैकल्पिक में wp-content के लिए सभी संदर्भों को बदलें और प्रतिस्थापित करें । आप अभी भी wp-contentअपने डेटाबेस में हैं। यदि आप WP मुफ्त चाहते हैं तो आपको उस सामान से छुटकारा पाने की आवश्यकता है। मैंने अपने डेटाबेस को निर्यात / mysql डंप किया, एक खोज की और wp-contentस्ट्रिंग को नए स्ट्रिंग में बदल दिया। आप कह सकते हैं ... अगर अपाचे मेरे यूआरएल को फिर से लिखेंगे तो मुझे ऐसा क्यों करना होगा? समस्या यह है कि स्रोत कोड में ये संदर्भ शामिल होंगे यदि आप वास्तव में वर्डप्रेस को अस्पष्ट करने में रुचि रखते हैं, तो आपको ऐसा करने की आवश्यकता है। नोट: इस बिंदु पर मुझे बस रोकना चाहिए और वास्तविकता को स्वीकार करना चाहिए कि यह काम नहीं कर रहा था। लेकिन मैं चाहता था कि मिस्टर टी मुझ पर दया करें।

  7. सभी संदर्भों को बदलें wp-includesऔर wp-adminस्रोत में। वर्डप्रेस कार्यक्षमता का एक बहुत इन दो निर्देशिकाओं पर निर्भर करता है: wp-includesऔर wp-admin। इसका मतलब है कि इन निर्देशिका नामों को स्रोत कोड में हार्डकोड किया गया है। इसका मतलब यह है कि आपको इन तक पहुँचने के लिए नई निर्देशिका (चूंकि PHP अंतर्निहित OS फ़ाइल सिस्टम का उपयोग करती है, अपाचे की नहीं) का उपयोग करना होगा और तब उत्सर्जित html में शामिल होना चाहिए। यह सिर्फ बहुत परेशानी का तरीका है। मैंने जल्दी से हार मान ली और शौच के लिए बाथरूम में चला गया।

पाठ

ज़रूर, मैं बस http://codex.wordpress.org/Hardening_WordPress पढ़ सकता था और उन चरणों का पालन कर सकता था। लेकिन मुझे परफेक्ट साइट चाहिए थी। अब मैं बस उन सभी घंटों को वापस चाहता हूं। सबसे बड़ी बात जो मुझे रोकने से रोकती थी, वह यह कि मैंने इंटरनेट पर कहीं भी नहीं पढ़ा कि यह बहुत काम था और लगभग असंभव था। इसके बजाय मैंने लोगों को यह समझने की कोशिश की कि वे सफल नहीं हुए या नहीं। तो, अपने पिछले स्वयं के लिए, जिसे मैं इसे Apple के टाइम मशीन के माध्यम से भेजूंगा, कृपया वर्डप्रेस को आज़माएं और अस्पष्ट न करें। यह इसके लायक नहीं है।


वेल एवरी, मैं भी एक आदमी हूँ जो परफेक्ट होना चाहता है .. पहले मैं एक वर्डप्रेस मल्टीसिट बनाना चाहता था तथ्य को छुपाकर मैं वर्डप्रेस का उपयोग कर रहा हूँ। मैं बहुत सारी समस्याओं से गुज़रा हूँ और अंत में मल्टीसाइट विचार छोड़ दिया है। क्योंकि कई प्लगइन्स मल्टीसाइट का समर्थन नहीं करते हैं। आपका 7 वां बिंदु आपको प्रतिस्थापित wp-includesऔर wp-adminपाठ को मैन्युअल रूप से इंगित करता है । मुझे पूरा यकीन है कि आपने प्रत्येक फ़ाइल को ब्राउज़ किया और मैन्युअल रूप से प्रतिस्थापित किया। Thats क्योंकि आप कुछ उपयोगी आसान सॉफ्टवेयर याद किया। उदाहरण के लिए आप grepwin की कोशिश कर सकते हैं जो उस काम को आसान बनाता है
गिरी

4

यदि आप पटाखे के कारण यह छिपाने की कोशिश कर रहे हैं कि आप वर्डप्रेस का उपयोग कर रहे हैं, तो आपको वास्तव में कुछ काम करना है। यदि आप wp * ट्रिक करते हैं, तो wp-content और wp- के बारे में क्या शामिल है? उन तक पहुंचने में सक्षम हुए बिना, आप पृष्ठ को तोड़ देंगे और यह भयानक लगेगा।

इसके अलावा, वर्डप्रेस में बहुत सी चीजें हैं जो वास्तव में कुछ काम करती हैं - और आपको सबसे अधिक संभावना यह होगी कि एक अपग्रेड स्थापित होने पर फिर से बहुत कुछ करना होगा। (Apache में कुछ रीडायरेक्ट ट्रिक नहीं करेंगे)

यदि आप इसे श्री और श्रीमती सभी से छिपाने की कोशिश कर रहे हैं, तो निश्चित रूप से आपको अश्लीलता के साथ कुछ करने में सक्षम होना चाहिए।

क्या आपने "सख्त वर्डप्रेस" गाइड पढ़ा है? यदि नहीं, तो आपको इसकी जांच करनी चाहिए: http://codex.wordpress.org/Hardening_WordPress यह बहुत सी चीजों का एक शानदार परिचय देता है जो आप कर सकते हैं।

इसके अलावा, यदि आप इस तथ्य को छिपाने के लिए उत्सुक हैं कि आप Wordpress का उपयोग करते हैं, तो इसका उपयोग क्यों करें?


1. पुन: WP-सामग्री / WP-शामिल पोस्ट में लिंक देखें 2. मैं है सख्त वर्डप्रेस मार्गदर्शिका पढ़ें। 3. आपके अंतिम प्रश्न का उत्तर मेरे द्वारा पोस्ट किए गए लिंक को आसानी से बनाकर दिया जा सकता है। मैं अशिष्ट होने की कोशिश नहीं कर रहा हूं, लेकिन इस सवाल का मेरे खुद के तकनीकी गुणों के साथ बहुत कम है। बहुत से लोग विभिन्न उपकरणों का उपयोग करते हैं लेकिन इसे विज्ञापित करने की इच्छा नहीं रखते हैं। कुछ के लिए यह एक व्यावसायिक निर्णय है।
एवेरी चैन

0

अपाचे कॉन्फ़िगरेशन में अपना कॉन्फ़िगरेशन करने का प्रयास करें। यह फ़ाइल की तरह शामिल हो सकता है /etc/wordpress/htaccess। यह आपको Directoryकॉन्फ़िगरेशन निर्देश का उपयोग करने की अनुमति देगा । हालाँकि आपको परिवर्तनों को लोड करने के लिए अपाचे को पुनः आरंभ करना होगा। यदि आप सेवा में रुकावट नहीं चाहते हैं तो सुशोभित पुनरारंभ का उपयोग करें।

.htaccessफ़ाइलों के साथ डायरेक्ट्री एक्सेस को प्रतिबंधित करने के लिए , उन्हें उपयुक्त निर्देशिकाओं में होना चाहिए। वे Directoryविन्यास निर्देश की सामग्री की तरह कार्य करते हैं । आपको .htaccessअपने अपाचे कॉन्फ़िगरेशन में आवश्यक विकल्पों को सक्षम करने की आवश्यकता हो सकती है। यह विधि अपाचे कॉन्फ़िगरेशन में कमांड का उपयोग करने के रूप में कुशल नहीं है क्योंकि इसे बार-बार पुनर्प्राप्त करने की आवश्यकता होती है।


मैं एक ऐसे समाधान की तलाश कर रहा हूं, जिसमें मेरी httpd.conf फ़ाइल को संपादित करने की आवश्यकता न हो क्योंकि वह लिखित हो सकता है (मैं एक आभासी निजी होस्ट पर हूं)। मैं प्रश्न को उचित रूप से संपादित करूंगा।
अवन चान

@Avry: आपको उन निर्देशिकाओं को जगह देने की आवश्यकता होगी .htaccessजो मिलान निर्देशिका में एक फ़ाइल में <निर्देशिका> कॉन्फ़िगरेशन में डालेंगे । नोट: अपाचे की सलाह है कि यदि संभव हो तो आप कॉन्फ़िगरेशन का उपयोग करें। ओवरराइट्स से बचाव के लिए संस्करण नियंत्रण का उपयोग करें।
बिलहोर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.