संपूर्ण वेबसाइट को एक पृष्ठ पर पुनर्निर्देशित करें


10

मुझे पूरी वर्डप्रेस साइट को सिंगल वर्डप्रेस पेज पर रीडायरेक्ट करना होगा। एक प्रकार का रखरखाव मोड, लेकिन रीडायरेक्ट को एक प्रकाशित वर्डप्रेस पेज पर जाना होगा। दुर्भाग्य से, मुझे जो रखरखाव पृष्ठ दिखाना है वह अन्य वर्डप्रेस प्लगइन्स का उपयोग करना है।

मुझे किसी भी रखरखाव मोड प्लगइन के बारे में पता नहीं है जो आपको ऐसा करने देता है। अधिकतम, वे आपको कस्टम HTML / CSS कोड लिखने देते हैं।

मैं एक .htaccess mod_rewrite नियम के बारे में सोच रहा था। हालांकि, मैं mod_rewrite से बहुत कमजोर हूं।

सबसे पहले, मैंने कैनोनिकल रिडायरेक्ट्स को निष्क्रिय कर दिया

फिर, मैंने उपयोग करने की कोशिश की:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/index.php?page_id=813$
RewriteRule ^(.*)$ /index.php?page_id=813 [R=307,L]

हालाँकि, ये नियम पुनर्निर्देशित लूप उत्पन्न करते हैं। page_id=813मेरे रखरखाव पृष्ठ की आईडी है।

क्या कोई रखरखाव मोड प्लगइन के बारे में जानता है, जो किसी प्रकाशित पृष्ठ पर पुनर्निर्देशित करता है?

वैकल्पिक रूप से, क्या कोई मुझे mod_rewrite नियमों को ठीक करने में मदद कर सकता है? अतिरिक्त चियर्स अगर हम /wp-adminअनुप्रेषित नियमों से बाहर निकल सकते हैं।

जवाबों:


14

आप वास्तव में वर्डप्रेस के अंदर से ही ऐसा कर सकते हैं, बजाय एक भ्रमित और अतिव्यापी .htaccess फिक्स के साथ आने की जरूरत है।

हम template_redirectफिल्टर में हुक कर सकते हैं , जो केवल फ्रंट-एंड पर फायर करता है (डब्ल्यूपी-एडमिन में नहीं)। हम is_page()फ़ंक्शन का उपयोग यह जांचने के लिए करते हैं कि क्या हम किसी पेज को 813 की आईडी के साथ देख रहे हैं। यदि नहीं, तो wp_redirect()फ़ंक्शन का उपयोग करके उस पेज पर रीडायरेक्ट करें ।

add_action( 'template_redirect', function() {
    if ( is_page( 813 ) ) {
        return;
    }

    wp_redirect( esc_url_raw( home_url( 'index.php?page_id=183' ) ) );
    exit;
} );

यह एक रखरखाव मोड के लिए बहुत अच्छा काम करेगा, क्योंकि 302 'अस्थायी' HTTP हेडर के साथ रीडायरेक्ट किया गया है, जिससे बॉट्स और सर्च इंजन को पता चल जाता है कि आपकी साइट जल्द ही बन जाएगी। हालाँकि, यदि आप साइट को स्थायी रूप से स्थानांतरित कर रहे हैं, तो आप रीडायरेक्ट के लिए 301 'स्थायी' HTTP हेडर का उपयोग करना चाह सकते हैं। आप wp_redirectफ़ंक्शन में दूसरा पैरामीटर जोड़कर ऐसा कर सकते हैं । उदाहरण:

add_action( 'template_redirect', function() {
    if ( is_page( 813 ) ) {
        return;
    }

    wp_redirect( esc_url_raw( home_url( 'index.php?page_id=183' ) ), 301 );
    exit;
} );

यह मेरे उद्देश्य के लिए भी महान काम करता है। एक मोड़ को छोड़कर - अच्छे के लिए साइट "डाउन" है और मैं WP को ऊपर रखना चाहता हूं और होम पेज के रूप में अलविदा पेज को चला रहा हूं। क्या एसईओ के लिए इस प्रकार के रीडायरेक्ट में 301 हेडर जोड़ने का एक तरीका है?
टेपफ्रीक

@Tapefreak आप HTTP हेडर को wp_redirectफंक्शन के दूसरे पैरामीटर के रूप में सेट कर सकते हैं । उदाहरण:wp_redirect( home_url( 'index.php?page_id=183' ), 301 );
शीया

1

मैंने एक फ़ाइल प्लगइन में @shea द्वारा स्वीकृत उत्तर को एम्बेड किया है, और दो विकल्प जोड़े हैं: केवल गैर-व्यवस्थापक उपयोगकर्ताओं को पुनर्निर्देशित करें और एक मनमाना URL पर पुनर्निर्देशित करें।

यदि रुचि है, तो कृपया Github => https://github.com/Idearia/wp-redirect-website-to-url से प्लगइन डाउनलोड करने के लिए स्वतंत्र महसूस करें ।

विकल्प

प्लगइन विकल्प बहुत सरल हैं; कुछ समय के लिए, वे प्लगइन फ़ाइल में हार्ड-कोडेड हैं, लेकिन अगर लोग इसका अनुरोध करते हैं, तो मैं एक विकल्प पृष्ठ बनाने पर विचार कर सकता हूं:

  • DESTINATION_URL : पूर्ण URL जहाँ उपयोगकर्ताओं को पुनर्निर्देशित किया जाता है; वेबसाइट डोमेन के बाहर एक पृष्ठ हो सकता है।
  • DESTINATION_URL_ID : यदि पुनर्निर्देशन URL एक वर्डप्रेस पेज या पोस्ट है, तो यहां इसकी वर्डप्रेस आईडी निर्दिष्ट करें।
  • USER_CAPABILITY : इस क्षमता वाले उपयोगकर्ताओं को पुनर्निर्देशित नहीं किया जाएगा; हर किसी को पुनर्निर्देशित करने के लिए खाली छोड़ दें; डिफ़ॉल्ट 'manage_options' है जो व्यवस्थापक उपयोगकर्ताओं के लिए सक्षम है।
  • REDIRECT_STATUS_CODE : पुनर्निर्देशन की स्थिति: अस्थायी पुनर्निर्देशन के लिए 302, स्थायी पुनर्निर्देशित के लिए 301।
  • DEBUG : डीबग जानकारी को डिबग में प्रिंट करना है या नहीं।

Github पृष्ठ पर अद्यतन जानकारी => https://github.com/Idearia/wp-redirect-website-to-url

कृपया ध्यान दें कि प्लगइन बहुत बुनियादी है; अधिक उन्नत उपयोगकर्ता WordPress.org प्लगइन रिपॉजिटरी पर उपलब्ध कई रखरखाव प्लगइन्स में से एक के बजाय विचार कर सकते हैं।

मुझे बताएं कि क्या आपको प्लगइन have चलाने में कोई समस्या है


0

मैं एक बहुत सरल समाधान के लिए जाना था। मेरी धारणा यह है कि आप केवल यही चाहते हैं कि कोई भी केवल एक पृष्ठ देख सके - आपके डोमेन के लिए किसी भी अनुरोध के लिए किसी भी WP पृष्ठ को दिखाई देने की कोई आवश्यकता नहीं है।

तो, क्यों न एक HTML पेज बनाया जाए, इसे कुछ CSS के साथ स्टाइल करें, और उस पेज को अपने होस्टिंग प्लेटफ़ॉर्म पर किसी अन्य फ़ोल्डर में डालें। सुनिश्चित करें कि पृष्ठ जैसा आप चाहते हैं वैसा ही बने।

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

या, आप वर्तमान डोमेन रूट फ़ोल्डर (ओं) से सभी सामग्री को स्थानांतरित कर सकते हैं, और अपनी साधारण HTML फ़ाइल को इसमें डाल सकते हैं।

अपने डोमेन पर किसी भी पृष्ठ के लिए किसी भी अनुरोध के लिए होस्टिंग साइटों की 'वैश्विक पुनर्निर्देशन' भी हो सकती है।

किसी भी तरह से आपकी आवश्यकताओं के लिए एक सरल समाधान आपके पूरे डोमेन के लिए केवल एक पृष्ठ होगा।

यदि आप वास्तव में एक htaccess समाधान चाहते हैं, तो इसका उपयोग करें:

RewriteEngine on

RewriteRule ^(.*)$ http://www.example.com/  [R=permanent,L]

.. अपने वास्तविक डोमेन के साथ जगह। एसईओ खुश भी।

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