से एचटीएमएल को कैसे हटाएं। क्या आपको कोई विचार है कि एक स्थिर पृष्ठ के यूआरएल से .html को कैसे हटाया जाए। साथ ही, मुझे बिना किसी यूआरएल को .html के साथ रीडायरेक्ट करने की आवश्यकता है (यानी www.example.com/page.html www.example.com/page पर)।यूआरएल
यूआरएल
उत्तर
आपके उत्तरों के लिए धन्यवाद। मैंने पहले ही अपनी समस्या हल कर ली है। मान लीजिए मेरे पास http://www.yoursite.com/html के तहत मेरे पृष्ठ हैं, निम्नलिखित .htaccess नियम लागू होते हैं।
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /html/(.*).html\ HTTP/
RewriteRule .* http://localhost/html/%1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /html/(.*)\ HTTP/
RewriteRule .* %1.html [L]
</IfModule>
अपाचे के तहत .htaccess के साथ आप इस तरह रीडायरेक्ट कर सकते हैं:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
यूआरएल से .html के दूर करने के लिए के रूप में, बस .html
<a href="http://www.example.com/page">page</a>
यह मेरे लिए कुछ भी नहीं करता है। क्या कोई कारण है कि यह काम नहीं करेगा? –
RewriteRule /(.+)(\.html)$ /$1 [R=301,L]
बिना पृष्ठ से लिंक
इसे आजमाएं :) यह नहीं पता कि यह काम करता है या नहीं।
मैं अपने यूआरएल साइट से .html extantion दूर करने के लिए इस .htacess उपयोग करते हैं, तो कृपया सत्यापित करें कि यह सही कोड है:
RewriteEngine on
RewriteBase/
RewriteCond %{http://www.proofers.co.uk/new} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.html [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ http://www.proofers.co.uk/new/$1 [R=301,L]
यह मेरे लिए काम करता प्रतीत होता है, यहां प्रस्तुत अन्य समाधानों के विपरीत, धन्यवाद। हालांकि मैं जोड़ूंगा कि आपको अभी भी अपने एचटीएमएल में लिंक को अपडेट करना होगा (इसलिए यदि आप मूल रूप से 0 एच 32 फाइल को के रूप में लिंक कर रहे हैं, तो आपको इसे के रूप में अपडेट करना चाहिए और फिर यह काम करेगा।) – Lorenzo
पर काम किया स्थानीय होस्ट। – Jayo2k
मेरे लिए मूल परिवर्तन 'रिवाइटबेस /' बिट था। दुर्भाग्यवश मुझे समझ में नहीं आया कि यह क्यों काम करता है, लेकिन मुझे लगता है कि मैं जल्द ही सीखूंगा। –
यह आप के लिए काम करना चाहिए:
#example.com/page will display the contents of example.com/page.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]
#301 from example.com/page.html to example.com/page
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]
मुझे इस कोड के साथ गोडाडी में 404 मिल रहा था और मैंने इसे डालने के लिए तय किया: विकल्प + FollowSymLinks -MultiViews -Indexes बहुत ऊपर। – Labanino
और यह काम किया .. बहुत बढ़िया। –
यह मेरे लिए काम कर रहा है ... thnx –
आप यह सुनिश्चित करने की आवश्यकता होगी कि आपके पास Options -MultiViews
भी है।
उपरोक्त में से कोई भी मानक सीपीनल होस्ट पर मेरे लिए काम नहीं करता है।
यह काम किया:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
मुझे लगता है कि जॉन के जवाब में से कुछ स्पष्टीकरण रचनात्मक होगा। निम्नलिखित:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
जांच करता है कि यदि निर्दिष्ट फ़ाइल या निर्देशिका क्रमशः मौजूद नहीं है, तो पुनर्लेखन नियम आय:
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
लेकिन क्या मतलब है? यह regex (regular expressions) का उपयोग करता है। यह एक छोटा सा कुछ मैंने पहले बनाया ...
मुझे लगता है कि कि सही है।
नोट: अपने .htaccess
का परीक्षण करते समय 301 रीडायरेक्ट का उपयोग न करें। समाप्त परीक्षण तक 302 का उपयोग करें, क्योंकि ब्राउज़र 301 को कैश करेगा। देखें https://stackoverflow.com/a/9204355/3217306
अद्यतन: मैं थोड़ा ग़लत थी, .
मैचों नई-पंक्तियों को छोड़ कर सभी वर्ण, तो खाली स्थान के भी शामिल है।इसके अलावा, here is a helpful regex cheat sheet
सूत्रों का कहना है:
http://community.sitepoint.com/t/what-does-this-mean-rewritecond-request-filename-f-d/2034/2
https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules
आपके URL से .html एक्सटेंशन को निकालने के लिए, आपको जड़/htaccess में निम्नलिखित कोड का उपयोग कर सकते हैं:
RewriteEngine on
RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule^/%1 [NC,L,R]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule^%{REQUEST_URI}.html [NC,L]
नोट: यदि आप किसी अन्य एक्सटेंशन को हटाना चाहते हैं, उदाहरण के लिए .php एक्सटेंशन को निकालने के लिए, बस replac उपरोक्त कोड में एचटीएमएल हर जगह php के साथ।
- 1. यूआरएल योजना यूआरएल योजना
- 2. एचटीएमएल यूआरएल - मौजूदा यूआरएल
- 3. jQuery यूआरएल पेज यूआरएल
- 4. यूआरएल एन्कोड एक यूआरएल
- 5. यूआरएल
- 6. यूआरएल
- 7. यूआरएल
- 8. यूआरएल
- 9. यूआरएल
- 10. यूआरएल
- 11. यूआरएल
- 12. यूआरएल
- 13. यूआरएल
- 14. यूआरएल
- 15. यूआरएल
- 16. यूआरएल
- 17. यूआरएल
- 18. यूआरएल
- 19. यूआरएल
- 20. यूआरएल
- 21. यूआरएल
- 22. यूआरएल
- 23. यूआरएल
- 24. यूआरएल
- 25. यूआरएल
- 26. यूआरएल
- 27. यूआरएल
- 28. यूआरएल
- 29. यूआरएल
- 30. यूआरएल
शायद regexp के साथ? –
".html को हटाएं" से, क्या आपका मतलब है "एचटीएमएल मौजूद होना आवश्यक नहीं है"? –
@Tomalak: हां और बिना किसी के ".html" के साथ यूआरएल को रीडायरेक्ट करें। मेरी समस्या यह है कि यह अनंत पुनर्निर्देशन के परिणामस्वरूप होता है। मेरा वर्तमान सेटअप www.example.com/page.html और www.example.com/page को दोनों सुलभ होने की अनुमति देता है जो एसईओ अनुकूल नहीं है। – Dave