.html
स्थैतिक पृष्ठ के URL से कैसे निकालें ?
इसके अलावा, मुझे इसके .html
बिना किसी भी यूआरएल को पुनर्निर्देशित करने की आवश्यकता है। (यानी www.example.com/page.html
करने के लिए www.example.com/page
)।
.html
स्थैतिक पृष्ठ के URL से कैसे निकालें ?
इसके अलावा, मुझे इसके .html
बिना किसी भी यूआरएल को पुनर्निर्देशित करने की आवश्यकता है। (यानी www.example.com/page.html
करने के लिए www.example.com/page
)।
जवाबों:
मुझे लगता है कि जॉन के जवाब की कुछ व्याख्या रचनात्मक होगी। निम्नलिखित:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
जाँचता है कि यदि निर्दिष्ट फ़ाइल या निर्देशिका क्रमशः मौजूद नहीं है, तो नियम फिर से लिखना है:
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
लेकिन इसका क्या मतलब है? यह रेगेक्स (नियमित अभिव्यक्ति) का उपयोग करता है । यहाँ कुछ मैं पहले बनाया है ...
मुझे लगता है कि यह सही है।
नोट: जब परीक्षण अपने 301 पुनर्निर्देश का उपयोग .htaccess
नहीं करते। समाप्त परीक्षण तक 302 का उपयोग करें, क्योंकि ब्राउज़र 301s को कैश करेगा। Https://stackoverflow.com/a/9204355/3217306 देखें
अद्यतन: मैं थोड़ा गलत था, .
सभी वर्णों को मेल खाता है, नई सूची को छोड़कर, जिसमें व्हाट्सएप भी शामिल है। इसके अलावा, यहाँ एक सहायक रेगेक्स चीट शीट है
सूत्रों का कहना है:
http://community.sitepoint.com/t/what-does-this-mean-rewritecond-request-filename-fd/2034/2
https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules
अपने यूआरएल से .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 एक्सटेंशन निकालने के लिए उदाहरण के लिए किसी अन्य एक्सटेंशन निकालने के लिए, चाहते हैं, बस की जगह एचटीएमएल के साथ हर जगह php उपरोक्त कोड में।
अपाचे के तहत .htaccess के साथ आप इस तरह रीडायरेक्ट कर सकते हैं:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
Url से .html को हटाने के लिए, बस बिना .html के पेज से लिंक करें
<a href="http://www.example.com/page">page</a>
!-f
यह आपके लिए काम करना चाहिए:
#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]
आपको यह सुनिश्चित करने की आवश्यकता होगी कि आपके पास Options -MultiViews
भी है।
उपरोक्त में से किसी ने भी मेरे लिए मानक cPanel होस्ट पर काम नहीं किया।
यह काम किया:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
आपके उत्तर के लिए धन्यवाद। मैंने अपनी समस्या पहले ही हल कर ली है। मान लीजिए कि मेरे पास 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>
मैं इसे हटाने के लिए .htacess का उपयोग करता हूं। मेरी url साइट से .html विलोपन, कृपया सत्यापित करें कि यह सही कोड है:
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]
RewriteBase /
थोड़ा था । दुर्भाग्य से मुझे समझ नहीं आया कि यह क्यों काम किया, लेकिन मुझे लगता है कि मैं जल्द ही सीखूंगा।
जो लोग फायरबेस का उपयोग कर रहे हैं, उनमें से कोई भी उत्तर इस पृष्ठ पर काम नहीं करेगा। क्योंकि आप .htaccess
Firebase होस्टिंग में उपयोग नहीं कर सकते । आपको firebase.json फ़ाइल को कॉन्फ़िगर करना होगा। बस "cleanUrls": true
अपनी फ़ाइल में लाइन जोड़ें और इसे सहेजें। बस।
लाइन जोड़ने के बाद firebase.json इस तरह दिखेगा:
{
"hosting": {
"public": "public",
"cleanUrls": true,
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
}
अपने URL से .html एक्सटेंशन को हटाने के लिए, आप रूट / htaccess में निम्न कोड का उपयोग कर सकते हैं:
#mode_rerwrite start here
RewriteEngine On
# does not apply to existing directores, meaning that if the folder exists on server then don't change anything and don't run the rule.
RewriteCond %{REQUEST_FILENAME} !-d
#Check for file in directory with .html extension
RewriteCond %{REQUEST_FILENAME}\.html !-f
#Here we actually show the page that has .html extension
RewriteRule ^(.*)$ $1.html [NC,L]
धन्यवाद