2014-10-12 8 views
5

मेरे पास कई यूआरएल हैं जिन्हें मुझे नए स्थानों पर रीडायरेक्ट करने की ज़रूरत है, लेकिन ऐसी कुछ स्थितियां हैं जहां बाल पृष्ठों को सक्रिय रहने की आवश्यकता है और पुनर्निर्देशित नहीं किया गया है। उदाहरण के लिए:.htaccess माता-पिता के लिए रीडायरेक्ट लेकिन बच्चों नहीं?

/productshttp://www.newsite.com/products

/products/category1 को अनुप्रेषित http://www.newsite/products/category1

लेकिन/products/specialitem को अनुप्रेषित होगा सब पर रीडायरेक्ट नहीं होगा।

क्या यह रीडायरेक्ट या रीडायरेक्ट मैच के साथ संभव है?

कर एक Redirect 301 /products http://www.newsite.com/products सभी बच्चे पृष्ठों

किसी भी मार्गदर्शन के लिए

धन्यवाद प्रभावित करने के लिए लगता है!

संपादित करें:

waynethec के जवाब का उपयोग करना, मैं शुरू करने के लिए कर रहा था। लेकिन क्या कोई यह स्पष्ट कर सकता है कि मेरा पहला नियम नीचे क्यों काम करता है लेकिन दूसरों को नहीं?

RedirectMatch 301 ^segment-one$ http://www.google.com/

RedirectMatch 301 ^segment-one/segment-two$ http://news.google.com/

RedirectMatch 301 ^segment-one/segment-two/segment-three$ http://cnn.com/

RedirectMatch 301 ^segment-one/segment-two/segment-three/foobar$ http://gbv.com/

(काम नहीं कर रहा करके, मेरा मतलब है कि मैं अभी भी करने के बजाय उन्हें रीडायरेक्ट किया जा रहा, पृष्ठों के लिए प्राप्त कर सकते हैं।)

+0

'mod_rewrite' की दुनिया)) बेशक में आपका स्वागत है, आप कर सकते हैं कि RedirectMatch साथ है, लेकिन अगर आवश्यकताओं की संख्या में वृद्धि -! RewriteRules करने के लिए स्विच ..' RedirectMatch 301 ^/उत्पादों (/ specialitem) http: // www.newsite.com/products' हालांकि इसे जांच नहीं आया। – Cheery

उत्तर

2

आपको निम्न RedirectMatch नियम का उपयोग करने में सक्षम होना चाहिए:

RedirectMatch 301 ^/products$ http://www.newsite.com/products 

ध्यान दें कि यह केवल/उत्पादों,//products/pagename.extension के लिए अनुरोधों को पुनर्निर्देशित करेगा।

+0

यह वास्तव में सहायक है, लेकिन अगर मेरे पास मेरे यूआरएल में अधिक सेगमेंट हैं तो क्या होगा? उदाहरण के लिए: '/ category1/subcat1'' http: // newsite.com/products' '/ category1/subcat1/product1/विवरण /' रीडायरेक्ट 'http://newsite.com/products/ पर रीडायरेक्ट करता है कुछ पेज ' '/category1/subcat1/product2/description2/'http: // newsite पर रीडायरेक्ट करता है।com/products/somepage2' '/ category1/subcat2/foo/bar /' http: // newsite.com/products/lorem/ipsum' – clorentzen

+0

पर रीडायरेक्ट हो सकता है शायद यह मेरे अनुवर्ती प्रश्न पूछता है: क्यों मेरे लिए पहले नियम नीचे काम करते हैं, लेकिन बाद वाले लोग नहीं करते हैं? 'रीडायरेक्ट मैच 301^सेगमेंट-वन $ http: // www.google.com /' 'रीडायरेक्ट मैच 301^सेगमेंट-वन/सेगमेंट-दो $ http: // news.google.com/' ' रीडायरेक्ट मैच 301^सेगमेंट-वन/सेगमेंट-टू/सेगमेंट-तीन $ http: // cnn.com/' 'रीडायरेक्ट मैच 301^सेगमेंट-वन/सेगमेंट-टू/सेगमेंट-तीन/फूबर $ http: // gbv.com /' – clorentzen

+0

आपके द्वारा प्रदान किया गया वाक्यविन्यास मान्य है और जैसा कि आप उम्मीद करते हैं, काम करना चाहिए। क्या आपके पास .htaccess में कोई अन्य नियम है? – waynethec

0

आप RedirectMatch उपयोग कर सकते हैं:

RedirectMatch 301 ^/products(?!/specialitem)(.*)$ http://www.newsite.com/products$1 

यह बाद /products, या कुछ भी रीडायरेक्ट करेगा, सिवाय /products/specialitem/

0

आप शर्तों जोड़ने की जरूरत है, तो यह भी मेरे लिए काम किया। ध्यान दें, RewriteRule का उपयोग करते समय मुझे ^ और products के बीच स्लैश को खत्म करना पड़ा।

RewriteCond [...whatever your conditions are...] 

# test with 302 first to avoid annoying caching issues 
# RewriteRule ^products$ http://www.newsite.com/products [R=302,NC,L] 

# but use 301 in production once you know it's working 
RewriteRule ^products$ http://www.newsite.com/products [R=301,NC,L] 
संबंधित मुद्दे