हमारे पास एक वेबसाइट है, दुर्भाग्यवश सभी यूआरएल में .html
प्रत्यय है, इसकी एक Magento स्थापना है, Magento आपको इसे सीएमएस पर बदलने की अनुमति देता है, लेकिन फिर, दुर्भाग्य से यह सभी यूआरएल .html
प्रत्यय के साथ Google में एक अच्छी रैंकिंग है। हमें गैर .html
पर रीडायरेक्ट करने की आवश्यकता है।रीडायरेक्ट के साथ यूआरएल से .html हटाएं
तो, निम्नलिखित परिदृश्य पर विचार करें, हम इस साइट को खरोंच से पुनर्निर्माण कर रहे हैं, इसलिए हमारे पास नई साइट पर समान यूआरएल हैं लेकिन बिना एचटीएमएल प्रत्यय।
- अब है:
www.example.de/cool-shoes.html
- होगा:
www.example.de/cool-shoes
तो www.example.de/cool-shoes.html
अब मौजूद नहीं होगा, और मैं .htaccess कोई भाग्य के साथ साथ एक रीडायरेक्ट की कोशिश कर रहा हूँ।
मैं अब तक की कोशिश की है:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule (.*)index\.html$ /$1 [R=301,L]
और:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
लेकिन यह नहीं लगता है काम करने के लिए ... किसी भी विचार?
RewriteEngine On
RewriteRule ^(\w+)\.html$ /$1 [R=301,L]
हैलो, बस मेरे संदेह को दूर करने के लिए, यह नियम क्या कर रहा है? यह नहीं माना जाता है कि पहला पैरामीटर अभिव्यक्ति से प्राप्त अभिव्यक्ति है और दूसरा जिसे आप अपाचे में भेज देंगे? उन्हें स्विच किया जाना चाहिए ->^(। *) $ 1.html – alexserver
वह नियम '.html' को हटा रहा है। पहला भाग यह है कि यह मेल खाता है: कोई यूआरएल जिसमें '.html' है। '$ 1' मिलान के संश्लेषण में क्या है: '.html' को छोड़कर सबकुछ। –
मैं यूआरएल के अंत में '.html' आने के लिए' '' 'जोड़ूंगा:' redirectMatch 301^(। *) \। Html $ $ 1' –