मेरे पास इस तरह एक यूआरएल है: http://www.localhost.com/code_category/computers/

मैं इस यूआरएल को इसमें बदलना चाहता हूं: http://www.localhost.com/category/computers/

मुझे url पुनर्निर्देशन की आवश्यकता नहीं है। मेरी वर्तमान htaccess फ़ाइल इस तरह दिखती है:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
1
anuj rajput 10 अक्टूबर 2017, 09:33
यह वर्डप्रेस है या कोई अन्य सीएमएस?
 – 
anubhava
10 अक्टूबर 2017, 09:42

2 जवाब

आप केवल code_category को categoryबाहरी रूप से रीडायरेक्ट करना चाहते हैं और पथ को आंतरिक रूप से बनाए रखना चाहते हैं, इसलिए इसे आजमाएं:

RewriteCond %{THE_REQUEST} !\s/+category/ [NC]
RewriteRule ^code_category/(.*)$ category/$1 [R=302,L,NE]
RewriteRule ^category/(.*)$ code_category/$1 [L]

उपरोक्त किसी भी अनुरोध को बाहरी रूप से code_category/whatever से category/whatever पर रीडायरेक्ट करेगा और आंतरिक पथ को वैसा ही रखेगा जैसा वह है।

यदि आप चाहते हैं कि केवल अनुरोध में code_category/computers/ शामिल है, तो इसे इसमें बदलें:

RewriteCond %{THE_REQUEST} !\s/+category/computers/ [NC]
RewriteRule ^code_category/computers/(.*)$ category/computers/$1 [R=302,L,NE]
RewriteRule ^category/computers/(.*)$ code_category/computers/$1 [L]

इसका परीक्षण करें, यदि यह स्थायी पुनर्निर्देशन के लिए 302 से 301 में ठीक है।

नोट: अपना ब्राउज़र कैश साफ़ करें और फिर उसका परीक्षण करें।

1
Mohammed Elhag 10 अक्टूबर 2017, 14:57
हाय मोहम्मद, मैं इसे कहां जोड़ूं मैंने ऊपर अपनी एचटीएसीएसी फ़ाइल का उल्लेख किया है।
 – 
anuj rajput
11 अक्टूबर 2017, 09:44
रिवाइटबेस के बाद /
 – 
Mohammed Elhag
11 अक्टूबर 2017, 10:56

.htaccess फ़ाइल

यह कोड जोड़ें

RewriteEngine on
RewriteCond %{HTTP_HOST} ^localhost.com [NC,OR]

# without redirect
# RewriteRule ^/code_category/computers/$ category/computers/
RewriteRule ^/category/computers/$ code_category/computers/

# redirect method
# RedirectMatch 301 ^/code_category/computers/$ category/computers/
  • रिवाइटइंजिन ऑन mod_rewrite को सक्षम करता है।
  • RewriteCond %{HTTP_HOST} दिखाता है कि हम कौन से URL करते हैं और फिर से लिखना नहीं चाहते हैं।
    1. इस मामले में, हम example.com से मेल खाना चाहते हैं।
    2. <ली>! मतलब "नहीं।" हम एक यूआरएल को फिर से लिखना नहीं चाहते हैं जिसमें पहले से ही फ़ोल्डर 1 शामिल है, क्योंकि तब यह फ़ोल्डर 1 जोड़ता रहेगा, और यह एक असीमित लंबा यूआरएल बन जाएगा।
  • [एनसी] यूआरएल के अपर-केस और लोअर-केस दोनों संस्करणों से मेल खाता है।
  • पुनर्लेखन नियम एक विशेष नियम को परिभाषित करता है।
  • रिवाइटरूल के बाद वर्णों की पहली स्ट्रिंग परिभाषित करती है कि मूल यूआरएल कैसा दिखता है। इस लेख के अंत में विशेष पात्रों का अधिक विस्तृत विवरण दिया गया है।
  • रिवाइटरूल के बाद की दूसरी स्ट्रिंग नए यूआरएल को परिभाषित करती है। यह दस्तावेज़ रूट (एचटीएमएल) निर्देशिका के संबंध में है। / का अर्थ स्वयं html निर्देशिका है, और सबफ़ोल्डर भी निर्दिष्ट किए जा सकते हैं।

संदर्भ के लिए यहां क्लिक करें

उम्मीद है ये मदद करेगा!

1
Sivaraj S 10 अक्टूबर 2017, 20:53
नमस्ते शिवराज मदद के लिए धन्यवाद, अगर उपयोगकर्ता localhost.com/category/computers url में इसे localhost.com/code_category/computers पृष्ठ सामग्री दिखानी चाहिए।
 – 
anuj rajput
10 अक्टूबर 2017, 10:12
उस स्थिति में RewriteRule ^/category/computers/$ code_category/computers/
 – 
Sivaraj S
10 अक्टूबर 2017, 10:15