जवाबों:
URL से एक्सटेंशन निकालने के कई कारण हैं:
ध्यान रखें कि कई साइटें एक सामग्री प्रबंधन प्रणाली (CMS) द्वारा बनाई गई हैं जो URL को इस तरह दिखाई देगा /index.php?page=this-is-the-widget-page
:। यह विशेष रूप से बदसूरत है और सिर्फ एक विस्तार की तुलना में कहीं अधिक cruft है। हटाने का फिर index.php?page=
से प्रयास करना बेहतर बनाता है।
वेब पर एक्सटेंशन की आवश्यकता नहीं है क्योंकि सर्वर हेडर के रूप में दस्तावेज़ का प्रकार भेजते हैं। वेब पेज के रूप में text/html
, छवियों image/png
या के रूप में सेवा कर रहे हैं image/jpeg
। यह ब्राउज़रों को यह जानने की सुविधा देता है कि किसी एक्सटेंशन का उपयोग किए बिना सामग्री को कैसे प्रस्तुत किया जाए ताकि यह पता चले कि URL में टेक्स्ट, HTML, PDF या छवि है (अधिक जानकारी के लिए विकिपीडिया लेख इंटरनेट मीडिया प्रकार देखें )।
कुछ वेबमास्टर इस सामग्री प्रकार से मेल खाने वाले URL पर एक्सटेंशन का उपयोग करना चुनते हैं। तो किसी भी text/html
दस्तावेज़ में एक .html
एक्सटेंशन होगा और किसी भी image/png
दस्तावेज़ में एक .png
एक्सटेंशन होगा। जब URL फाइल सिस्टम में सहेजे जाते हैं तो मदद कर सकते हैं जहां मेटा सामग्री के बारे में उनके डेटा प्रकार खो गए हैं। अधिकांश फ़ाइल सिस्टम में, फ़ाइल खोलने वाला प्रोग्राम एक्सटेंशन द्वारा चुना जाता है। इसलिए भले ही एक पृष्ठ PHP द्वारा परोसा गया हो, कुछ वेबमास्टर्स .php
एक्सटेंशन को हटा देते हैं , और कुछ इसे बदल देते हैं .html
।
यह भी सवाल है कि क्या यूआरएल को बेहतर तरीके से स्लैश ( /
) में समाप्त किया जा सकता है, जब उनके पास कोई एक्सटेंशन नहीं है, जिसकी स्टैक ओवरफ्लो पर बहुत चर्चा है।
सभी वेब सर्वरों में एक या अधिक "डिफ़ॉल्ट फाइलें" होती हैं। यह वह फ़ाइल होती है, जो जब भी कोई विज़िटर किसी URL पर जाता है जो एक स्लैश में समाप्त होता है /
, अर्थात एक फ़ोल्डर।
यदि आपके वेब सर्वर पर डिफ़ॉल्ट फ़ाइल नाम है index.php
और एक आगंतुक जाता है www.example.com/pagename/
, तो वे वास्तव में एक्सेस कर रहे हैं www.example.com/pagename/index.php
।
यदि कोई अनुगामी नहीं है /
, तो वेब सर्वर शायद इसे हटाने के लिए केवल URL को फिर से लिख रहा है, क्योंकि यह आवश्यक नहीं है। यह साइट, वास्तव में, ऐसा करती है।
यह “कूल” यूआरआई योजना का प्रकार है जिसका लक्ष्य मैं अपनी निजी वेबसाइट पर चाहता हूं।
व्यक्तिगत रूप से, कारण जो मैंने ऐसा करना शुरू कर दिया (और शायद कई और वेब डिजाइनर / डेवलपर्स भी!) लेख "कूल यूआरआई नहीं बदलते हैं" पढ़ने के बाद था - यह दस्तावेज़ वर्ल्ड वाइड वेब के संस्थापक पिता, टिम बर्नर्स द्वारा लिखा गया था। ली।
टिम बर्नर्स-ली के प्रसिद्ध लेख में, वे मूल रूप से उन्हीं कारणों को बताते हैं जो स्टीफन ओस्टरमिलर ने इस प्रश्न के अपने उत्कृष्ट उत्तर में दिए हैं ।
अपने मुख्य प्रश्न का अधिक विशिष्ट उत्तर देने के लिए, "URL में एक्सटेंशन क्यों छिपे हैं?" ठीक है, मैं कहूंगा कि मेरे लिए मुख्य कारण हैं:
1. URI के भविष्य के प्रमाण के लिए:
उदाहरण के लिए, किसी URI का उपयोग करने के लिए उस समय यह एक अच्छे विचार की तरह लग सकता है: जैसे
http://www.example.com/page.pl
कि .pl
पर्ल लिपि के लिए फ़ाइल एक्सटेन्शन होना। हालाँकि, thesedays, अधिकांश वेब डेवलपर्स बैकएंड-स्क्रिप्टिंग के लिए ASP.NET या PHP का उपयोग करते हैं, इसलिए आज पूर्व संध्या ,
http://www.example.com/page.php
एक बेहतर विचार की तरह लगता है, अंततः PHP और ASP / ASP.net पुराने जमाने के हो जाएंगे। इसलिए एक बेहतर विचार यह है कि विस्तार को पूरी तरह से हटा दिया जाए।
2. पठनीयता और संस्मरण:
कागज पर (जैसे विज्ञापन, बिजनेस कार्ड आदि) मौखिक रूप से "शांत" यूआरआई लोगों के लिए पारित करना बहुत आसान है, याद रखना आसान नहीं है।
3. "हैकबिलिटी" *
हालाँकि मैं कहूंगा कि इन दिनों अधिकांश उपयोगकर्ता संभवतः हर चीज के लिए एक खोज इंजन के माध्यम से जाते हैं - मैंने ऐसे लोगों को भी देखा है जो पता बार और टाइप पर जाते हैं www.google.com
, और फिर Google को सचमुच में टाइप करने के लिए उपयोग करते हैं www.ebay.com
! लेकिन, मुझे लगता है कि अगर मेरे पास मल्टीमीडिया पर आधारित एक वेबसाइट है, तो यूआरआई http://www.example.com/video
संकेत देता है कि संगीत अनुभाग यूआरआई के तहत पाया जा सकता है http://www.example.com/audio
, और इसी तरह। (मैं अभी भी वेबसाइटों पर जाने के लिए एड्रेस बार का उपयोग करता हूं - मैं उस तरह की चीज़ के बारे में "पुराने स्कूल" हूं!)
* (ओह! "हैकैबिलिटी" - क्या यह शब्द भी मौजूद है? ठीक है, यह अब करता है !) :-)
4. * सौंदर्यशास्त्र: उन्हें सुंदर दिखाने के लिए! (दोष मेरी ओसीडी!)
हालाँकि, मैंने विभिन्न एसईओ-संबंधित वेबसाइटों के माध्यम से पढ़कर देखा है, कि बहुत सारे वेबमास्टर वास्तव में डायनामिक यूआरआई के लिए एक फाइल एक्सटेंशन को जोड़ते हैं, जैसे:
वास्तविक यूआरआई हो सकता है:
http://www.example.com/article
हालांकि, वेबमास्टर URI को "स्थिर" बनाने के लिए एक रीराइट करेगा, जैसे:
http://www.example.com/article.html
इसके पीछे तर्क यह है कि मूल रूप से, एक खोज इंजन स्थैतिक पृष्ठों को उच्च रैंकिंग प्रदान करेगा (जो कि, जाहिरा तौर पर, परिवर्तन की संभावना कम है)। (हालांकि मैं एसईओ में बिल्कुल विशेषज्ञ नहीं हूं, मैं व्यक्तिगत रूप से इस विचार में खुद को नहीं खरीदता हूं - मैं निर्देशित कर रहा हूं कि Google और बिंग के एल्गोरिदम के पीछे किस तरह के दिमाग के साथ, यह एक नकली फ़ाइल एक्सटेंशन से थोड़ा अधिक लगेगा आप SERP पोल स्थिति में अपना रास्ता जीत! "
URI के नामकरण के बारे में अधिक जानकारी के लिए, मैं इन लेखों को पढ़ने की सलाह देता हूं:
टिक बैरनर्स - ली:
W3C QA टिप्स:
ब्रायन केली (यूके वेब फोकस / UKOLN - स्नान विश्वविद्यालय):
उम्मीद है की यह मदद करेगा!
मैं ऊपर दिए गए सभी उत्तरों से पूरी तरह सहमत हूं। बस यही कारण है कि URL में एक्सटेंशन छिपे होने का एक कारण सुरक्षा है। इसे सीधे शब्दों में कहें, अगर आप URL में एक्सटेंशन को उजागर नहीं करते हैं, तो उस तकनीक का पता लगाना थोड़ा कठिन है जिस पर एप्लिकेशन बनाया गया है। तो आइए हम बताते हैं कि PHP में बना एक पेज और एक्सटेंशन छिपा हुआ नहीं है, तो एक हैकर संभावित रूप से PHP की कमजोरियों का पता लगा सकता है और इसका इस्तेमाल कुछ दुर्भावनापूर्ण गतिविधियों को अंजाम देने के लिए कर सकता है।
आप अपने पृष्ठ एक्सटेंशन छिपाते हैं या नहीं, लोग अभी भी यह जान सकते हैं कि आपने कौन सी तकनीक का उपयोग किया है। CURL का उपयोग करके, शीर्ष लेख की जानकारी प्राप्त करके अपनी तकनीक प्राप्त करना असंभव नहीं है।
curl -I -L rembatvideo.ga
फिर, आपको अपनी तकनीक, कैश अनुरोध, कनेक्शन और बहुत कुछ दिखाई देगा।
पूरी तरह से "स्टीफन ओस्टरमिलर" द्वारा समझाने के रूप में सहमत हैं, लेकिन मैं इसके पीछे की चाल का उल्लेख करना चाहूंगा कि यूआरएल का विस्तार छिपा हो। और इसके लिए आपको .htaccess rewrite rule का इस्तेमाल करना होगा , यहाँ स्क्रिप्ट है जो आपकी मदद करती है:
.php
एक्सटेंशन रहित URL के लिए बाहरी अनुरोधों को पुनर्निर्देशित करें
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]