2016-03-11 12 views
7

मेरे Wordpress साइट के ब्लॉग पोस्ट URL ऐसे दिखाई करने के लिए इस्तेमाल करने के लिए पुराने Wordpress ब्लॉग पोस्ट रीडायरेक्ट URL कैसे करें:नए लोगों को

http://example.com/some-random-blog-post-name http://example.com/other-random-blog-post-name http://example.com/in-case-you-dont-get-the-point-theyre-all-different

मेरी नई Wordpress साइट पर मैं उन्हें एक में जीना चाहते हैं/ब्लॉग/उपनिर्देशिका है, जहां वे हैं:

http://example.com/blog/some-random-blog-post-name

क्या इस बारे में मुश्किल बात यह है कि पुराने URL कोई पैटर्न का पालन है, इसलिए मुझे लगता है कि मैं कुछ भी गैर मान्यता प्राप्त के खिलाफ मैच के लिए की जरूरत है। कुछ इस तरह काम करता है लगभग ...

# Redirect unmatched blog posts to /blog/* 
<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !blog 
RewriteCond %{HTTP_HOST} ^example.com [NC,OR] 
RewriteRule ^(.*)$ https://example.com/blog/$1 [L,R=301,NC] 
</IfModule> 

... लेकिन यह Wordpress के अपने RewriteRules का विरोध करता है, और उस में कोई बदलाव नहीं के माध्यम से पारित करना चाहिए अन्य सभी साइट के पृष्ठों टूट जाता है।

तो मैं कैसे प्राप्त कर सकते हैं निम्नलिखित:

example.com/some-random-post 301 ->example.com/blog/some-random-post example.com/another-random-post 301 ->example.com/blog/another-random-post

example.com/contact/ -> (कोई रीडायरेक्ट)

+0

यूआरएल के किस पैटर्न को '/ blog' पर रीडायरेक्ट किया जाना चाहिए और क्या नहीं होना चाहिए? – anubhava

+0

@anubhava मुझे लगता है कि यह ऊपर दिए गए प्रश्न में पहले ही समझाया गया है। पुराने ब्लॉग पोस्ट के लिए कोई विशिष्ट पैटर्न नहीं है क्योंकि वे उपनिर्देशिका के साथ उपसर्ग नहीं किए गए थे। इसलिए मूल रूप से हमें किसी भी ऐसे वर्डप्रेस पेज को रीडायरेक्ट करने की आवश्यकता है जो मौजूदा वर्डप्रेस पेज नहीं है। – emersonthis

+0

उस मामले में mod_rewrite समाधान नहीं है। इसे स्वयं WP में संभालना होगा। – anubhava

उत्तर

1

अंदर 404.php (या 404 हैंडलर) आपकी थीम का आप फ़ाइल की शुरुआत में इस स्निपेट का उपयोग कर सकते हैं:

<?php 

$url = $_SERVER['REQUEST_URI']; 

if (stripos($url, "/blog/", 0) !== 0) { 
    header("Location: " . "/blog" . $url); 
    exit; 
} 

// rest of the 404 code 
?> 
+0

हाँ मैं यही सोच रहा था ... मुझे पता है कि यह 404 में कोड को चिपकाने के लिए काम करेगा। PHP टेम्पलेट फ़ाइल, लेकिन मुझे लगता है कि टीआई क्लीनर होगा यदि वह तर्क functions.php में रहता है ... क्या आपको पता है कि 404 अनुरोधों के लिए एक हुक/फ़िल्टर है? – emersonthis

+0

मैं वास्तव में WP विशेषज्ञ नहीं हूँ। 'Is_404() 'नामक एक फ़ंक्शन है जो आपको' header.php' या' index.php' – anubhava

0

यदि मैं आप थे, तो मैं अपने FTP पर एक नई फ़ाइल 'ब्लॉग' बनाउंगा और मैं इस नई फाइल में सभी पुराने वर्डप्रेस को काट और पेस्ट कर दूंगा। इस तरह, आपको .htaccess में कुछ भी बदलने की आवश्यकता नहीं है, रीडायरेक्शन स्वचालित रूप से वर्डप्रेस बो में किया जाएगा।

+2

में इस 404 हैंडलिंग का उपयोग करने देता है, जो आप सुझाव दे रहे हैं उसका पालन नहीं करते हैं।इस के परिणामस्वरूप क्या होने वाला है इस पर विस्तार कर सकते हैं? – emersonthis

संबंधित मुद्दे