एक वेबसाइट के लिए, मैं सिर्फ relaunched, मैं एक htaccess अनुप्रेषित पकड़ने के लिए सभी गैर मौजूदा उपपृष्ठ के तहत /blog/
करने के लिए सिर्फ बात करने के लिए /blog/
और नहीं एक 404 (तो /blog/old-page/
सिर्फ रीडायरेक्ट करने के लिए /blog/
). यह महत्वपूर्ण है कि हालांकि अभी भी मौजूदा उपपृष्ठ (इस तरह के रूप में /blog/new-page/
) नहीं कर रहे हैं पुनर्निर्देशित. यह भी अच्छा है अगर यह हो सकता है में जड़ htaccess फ़ाइल नहीं है (सबफ़ोल्डर में). मुझे लगता है जैसे मैं सब कुछ कोशिश की है, लेकिन नहीं मिल सकता है इस के लिए एक समाधान बनाने के बिना पुनर्निर्देश के लिए हर एक पुराने उपपृष्ठ (वहाँ रहे हैं >100)!
मुझे आशा है कि किसी की मदद कर सकते हैं.
अगर सभी अपने पृष्ठ के Url में थे के रूप /blog/<old-page>/
और पहले से मैप करने के लिए भौतिक निर्देशिका (जिसमें से एक DirectoryIndex
दस्तावेज़ परोसा गया था) है तो आप क्या कर सकते हैं निम्नलिखित की तरह कुछ का उपयोग कर mod_rewrite के शीर्ष पर अपने रूट .htaccess
फ़ाइल:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(blog/)[^/]+/$ /$1 [R=301,L]
$1
में प्रतिस्थापन स्ट्रिंग है एक backreference करने के लिए पहली बार कब्जा समूह में RewriteRule
पैटर्न, यानी. "ब्लॉग/". इस बस बचाता है पुनरावृत्ति.
एक तरफ: बस को दोहराने के लिए चिंता का विषय टिप्पणी में व्यक्त की गई. एसईओ के संबंध के साथ और उपयोगकर्ताओं, इस संभावना से भी बदतर एक कस्टम 404 प्रतिक्रिया बताते हैं कि अनुपस्थित पृष्ठ(एस). खोज इंजन होने की संभावना होगी यह देखने के (एक कई के लिए एक अनुप्रेषित) के रूप में एक नरम-404 और वैसे भी उपयोगकर्ताओं को और अधिक होने की संभावना करने के लिए बस हो "भ्रमित" और ( उछाल) देख जब वे अलग अलग सामग्री के लिए वे क्या उम्मीद कर रहे हैं. वहाँ वास्तव में कोई विकल्प नहीं है के लिए "पुराने" के लिए "नया" (एक-से-एक) 301 रीडायरेक्ट.