หลายครั้งที่ผมเห็นว่าส่วนขยาย URL ที่ถูกซ่อนไว้ (เช่น.html
, .php
) แต่ไม่ทุกเว็บไซต์ที่ทำเช่นนี้
ทำไมผู้ดูแลเว็บจึงซ่อนส่วนขยาย เพื่อความปลอดภัยหรือไม่เพื่อให้ URL ดูสะอาดตาหรือเพื่อจุดประสงค์อื่น
หลายครั้งที่ผมเห็นว่าส่วนขยาย URL ที่ถูกซ่อนไว้ (เช่น.html
, .php
) แต่ไม่ทุกเว็บไซต์ที่ทำเช่นนี้
ทำไมผู้ดูแลเว็บจึงซ่อนส่วนขยาย เพื่อความปลอดภัยหรือไม่เพื่อให้ URL ดูสะอาดตาหรือเพื่อจุดประสงค์อื่น
คำตอบ:
มีสาเหตุหลายประการในการลบส่วนขยายจาก URL:
โปรดทราบว่าเว็บไซต์จำนวนมากจะถูกสร้างโดยระบบการจัดการเนื้อหา (CMS) ที่จะทำให้ URL /index.php?page=this-is-the-widget-page
ที่มีลักษณะเช่นนี้ ที่น่าเกลียดโดยเฉพาะและมี cruft มากกว่าไกลแค่ขยาย การเขียนใหม่เพื่อลบindex.php?page=
ทำให้ดีขึ้นมาก
ไม่จำเป็นต้องใช้ส่วนขยายบนเว็บเนื่องจากเซิร์ฟเวอร์จะส่งประเภทของเอกสารเป็นส่วนหัว เว็บเพจจะทำหน้าที่เป็นtext/html
ภาพที่เป็นหรือimage/png
image/jpeg
วิธีนี้ทำให้เบราว์เซอร์ทราบวิธีแสดงเนื้อหาโดยไม่ใช้ส่วนขยายเพื่อพิจารณาว่า URL มีข้อความ HTML, PDF หรือรูปภาพ (สำหรับข้อมูลเพิ่มเติมดูบทความ Wikipedia ประเภทสื่ออินเทอร์เน็ต )
ผู้ดูแลเว็บบางคนเลือกที่จะใช้ส่วนขยายกับ URL ที่ตรงกับประเภทเนื้อหานี้ ดังนั้นtext/html
เอกสารใด ๆ ที่จะมี.html
นามสกุลและimage/png
เอกสารใด ๆ ที่จะมี.png
นามสกุล ซึ่งสามารถช่วยได้เมื่อบันทึก URL ไปยังระบบไฟล์ที่ข้อมูลเมตาเกี่ยวกับประเภทเนื้อหาของพวกเขาหายไป ในระบบไฟล์ส่วนใหญ่โปรแกรมที่เปิดไฟล์จะถูกเลือกโดยส่วนขยาย ดังนั้นแม้ว่าหน้าจะถูกเสิร์ฟโดย PHP เว็บมาสเตอร์บางเอานามสกุลและบางแทนที่โดย.php
.html
นอกจากนี้ยังมีคำถามว่าURL นั้นน่าจะจบลงด้วยการต่อท้ายสแลช ( /
) เมื่อไม่มีส่วนขยายที่มีการอภิปรายมากมายเกี่ยวกับ Stack Overflow หรือไม่
เว็บเซิร์ฟเวอร์ทั้งหมดมี "ไฟล์เริ่มต้น" หนึ่งไฟล์ขึ้นไป มันเป็นไฟล์ที่จะปรากฏเมื่อใดก็ตามที่ผู้เข้าชมไปที่ URL ที่ลงท้ายด้วยเครื่องหมายทับ/
เช่นโฟลเดอร์
ถ้าชื่อแฟ้มเริ่มต้นบนเว็บเซิร์ฟเวอร์ของคุณindex.php
และผู้เข้าชมไปwww.example.com/pagename/
พวกเขาจะจริงwww.example.com/pagename/index.php
เข้าถึง
หากไม่มีการติดตาม/
เว็บเซิร์ฟเวอร์อาจเป็นเพียงการเขียน URL ใหม่เพื่อลบออกเนื่องจากไม่จำเป็น ในความเป็นจริงไซต์นี้ทำเช่นนั้น
นี่เป็นรูปแบบของ URI แบบ“ เจ๋ง ๆ ” ที่ฉันตั้งเป้าไว้ในเว็บไซต์ส่วนตัวของฉันเอง
โดยส่วนตัวแล้วเหตุผลที่ฉันเริ่มทำเช่นนั้น (และอาจมีอีกมากมายที่นักออกแบบเว็บไซต์ / นักพัฒนา!) คือหลังจากอ่านบทความ“ Cool URIs ไม่เปลี่ยนแปลง” - เอกสารนี้เขียนโดยพ่อผู้ก่อตั้งของ World Wide Web, Tim Berners -Lee
ในบทความที่มีชื่อเสียงของ Tim Berners-Lee โดยทั่วไปแล้วเขากล่าวถึงเหตุผลเดียวกับที่ Stephen Ostermillerได้รับคำตอบที่ดีเยี่ยมสำหรับคำถามนี้
เพื่อให้คำตอบที่เฉพาะเจาะจงมากขึ้นสำหรับคำถามหลักของคุณ“ ทำไมส่วนขยายถูกซ่อนอยู่ใน URL” ฉันก็จะบอกว่าเหตุผลหลักสำหรับฉันคือ:
1. เพื่อพิสูจน์ URI ในอนาคต:
ตัวอย่างเช่นมันอาจฟังดูเป็นความคิดที่ดีในเวลานั้นที่จะใช้ URI เช่น:
http://www.example.com/page.pl
ซึ่ง.pl
เป็นไฟล์ที่มีประโยชน์สำหรับสคริปต์ Perl อย่างไรก็ตาม thesedays นักพัฒนาเว็บส่วนใหญ่ใช้ ASP.NET หรือ PHP สำหรับแบ็กเอนด์สคริปต์เพื่อให้วัน แต่วันนี้ ,
http://www.example.com/page.php
เสียงเหมือนความคิดที่ดีที่สุด PHP และ ASP / ASP.net จะกลายเป็นสมัยเก่า ดังนั้นความคิดที่ดีกว่าคือการลบส่วนขยายออกโดยสิ้นเชิง
2. การอ่านและจดจำ:
มันง่ายกว่ามากสำหรับ URI ที่“ เจ๋ง ๆ ” ที่จะส่งผ่านไปยังผู้คนด้วยวาจาบนกระดาษ (เช่นโฆษณานามบัตรเป็นต้น) ไม่ต้องพูดถึงว่าจะจดจำได้ง่ายกว่า
3. “ การแฮกข้อมูล” *
แม้ว่าฉันจะบอกว่าผู้ใช้ส่วนใหญ่ในทุกวันนี้อาจผ่านเครื่องมือค้นหาสำหรับทุกสิ่ง - ฉันเคยเห็นคนที่จะไปที่แถบที่อยู่และพิมพ์www.google.com
แล้วใช้ Google พิมพ์ตามตัวอักษรwww.ebay.com
! แต่ฉันคิดว่าถ้าฉันมีเว็บไซต์ที่ใช้สื่อมัลติมีเดีย URI http://www.example.com/video
บอกเป็นนัย ๆ ว่าส่วนเพลงสามารถพบได้ภายใต้ URI http://www.example.com/audio
และอื่น ๆ (ฉันยังคงใช้แถบที่อยู่เพื่อไปยังเว็บไซต์ - ฉันค่อนข้าง“ โรงเรียนเก่า” เกี่ยวกับเรื่องแบบนั้น!)
* (โอ้!“ ความสามารถในการแฮ็ก” - คำนั้นยังมีอยู่รึยัง ! ตอนนี้ก็ทำได้ !) :-)
4. สุนทรียศาสตร์ **: เพื่อทำให้พวกเขาดูดีขึ้น! (โทษ OCD ของฉัน!)
อย่างไรก็ตามฉันได้สังเกตเห็นจากการอ่านผ่านเว็บไซต์ที่เกี่ยวข้องกับ SEO หลายแห่งซึ่งผู้ดูแลเว็บจำนวนมากได้ผนวกนามสกุลไฟล์ไปยัง URIs แบบไดนามิกเช่น:
URI ที่แท้จริงอาจเป็น:
http://www.example.com/article
อย่างไรก็ตามผู้ดูแลเว็บจะทำการเขียนซ้ำเพื่อทำให้ URI“ ดู” คงที่เช่น:
http://www.example.com/article.html
ตรรกะที่อยู่เบื้องหลังสิ่งนี้คือโดยทั่วไปแล้วเสิร์ชเอ็นจิ้นจะกำหนดอันดับที่สูงกว่าให้กับหน้าสแตติก (ซึ่งเห็นได้ชัดว่ามีโอกาสน้อยที่จะเปลี่ยนแปลง) (แม้ว่าฉันไม่ใช่ผู้เชี่ยวชาญในการทำ SEO แต่ส่วนตัวฉันไม่ได้ซื้อความคิดนี้ด้วยตัวเอง - ฉันคิดว่าด้วยความคิดที่อยู่เบื้องหลังอัลกอริทึมของ Google และ Bing แต่จะใช้เวลามากกว่าการขยายไฟล์ปลอมเล็กน้อย con แบบของคุณในตำแหน่งเสา SERP!)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งชื่อ URIs ฉันขอแนะนำให้อ่านบทความเหล่านี้:
Tim Berners-Lee:
เคล็ดลับ W3C QA:
Brian Kelly (UK Web Focus / UKOLN - มหาวิทยาลัยบา ธ ):
หวังว่านี่จะช่วยได้!
ฉันเห็นด้วยกับคำตอบทั้งหมดที่กล่าวไว้ข้างต้น เพียงแค่เพิ่มเหตุผลข้อหนึ่งที่ทำให้ส่วนขยายถูกซ่อนไว้ใน URL เพื่อความปลอดภัย หากคุณไม่เปิดเผยส่วนขยายใน URL มันเป็นการยากที่จะเข้าใจว่าเทคโนโลยีที่สร้างแอปพลิเคชันนั้นเกิดขึ้นเพียงเล็กน้อย ดังนั้นสมมติว่าหน้าเว็บที่ทำใน PHP และส่วนขยายไม่ได้ถูกซ่อนไว้จากนั้นแฮ็กเกอร์อาจหาช่องโหว่ของ PHP และใช้เพื่อดำเนินกิจกรรมที่เป็นอันตราย
คุณซ่อนนามสกุลของหน้าหรือไม่ผู้คนยังสามารถรู้ว่าคุณใช้เทคโนโลยีใดอยู่ โดยใช้ cURL จะไม่สามารถรับเทคโนโลยีของคุณได้โดยดึงข้อมูลส่วนหัว
curl -I -L rembatvideo.ga
จากนั้นคุณจะเห็นสิ่งต่าง ๆ เช่นเทคโนโลยีคำขอแคชการเชื่อมต่อและอีกมากมาย
เห็นด้วยอย่างเต็มที่ตามที่อธิบายโดย "Stephen Ostermiller" แต่ฉันต้องการจะกล่าวถึงเคล็ดลับที่อยู่เบื้องหลังที่จะซ่อนส่วนขยายของ URL และสำหรับสิ่งที่คุณต้องใช้กฎ. htaccessเขียนใหม่นี่คือสคริปต์ที่ช่วยคุณได้
เปลี่ยนเส้นทาง.php
คำขอภายนอกไปยัง URL ที่ไม่มีนามสกุล
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]