Mengapa ekstensi sering disembunyikan di URL?

20

Sering kali saya melihat bahwa ekstensi URL disembunyikan (mis. .html, .php), Tetapi tidak semua situs web melakukan hal ini.

Mengapa webmaster menyembunyikan ekstensi? Apakah itu untuk keamanan, agar URL terlihat lebih bersih, atau untuk tujuan lain?

Tidak dikenal
sumber

Jawaban:

29

Ada beberapa alasan untuk menghapus ekstensi dari URL:

  • Untuk membuat URL terlihat lebih bersih
  • Untuk membuat URL lebih mudah diketik
  • Untuk membuat URL lebih mudah diingat
  • Untuk membuat URL lebih ramah kata kunci SEO
  • Agar dapat mengubah teknologi - jika Anda ingin memindahkan situs Anda dari satu teknologi ke teknologi lainnya, yang paling mudah adalah melakukannya tanpa pengguna tahu bahwa tidak ada ekstensi pada URL.

Perlu diingat bahwa banyak situs yang dihasilkan oleh sistem manajemen konten (CMS) yang akan membuat URL terlihat seperti ini: /index.php?page=this-is-the-widget-page. Itu sangat jelek dan memiliki kekuatan lebih dari sekedar ekstensi. Menulis ulang untuk menghapus index.php?page=membuatnya lebih baik.

Ekstensi tidak diperlukan di web karena server mengirim jenis dokumen sebagai header. Halaman web disajikan sebagai text/html, gambar sebagai image/pngatau image/jpeg. Ini memungkinkan browser mengetahui cara merender konten tanpa menggunakan ekstensi untuk mengetahui bahwa URL berisi teks, HTML, PDF atau gambar (untuk informasi lebih lanjut lihat artikel Wikipedia jenis media Internet ).

Beberapa webmaster memilih untuk menggunakan ekstensi pada URL mereka yang cocok dengan jenis konten ini. Jadi setiap text/htmldokumen akan memiliki .htmlekstensi dan image/pngdokumen apa pun akan memiliki .pngekstensi. Itu dapat membantu ketika URL disimpan ke sistem file di mana meta data tentang jenis konten mereka hilang. Di sebagian besar sistem file, program yang membuka file dipilih oleh ekstensi. Jadi, bahkan jika halaman dilayani oleh PHP, beberapa webmaster menghapus .phpekstensi, dan beberapa menggantinya dengan .html.

Ada juga pertanyaan apakah URL mungkin lebih baik diakhiri dengan trailing slash ( /) ketika mereka tidak memiliki ekstensi yang memiliki banyak diskusi tentang Stack Overflow.

Stephen Ostermiller
sumber
11
Dalam beberapa kerangka kerja (misalnya MVC) URL tidak mengidentifikasi file, jadi tidak ada ekstensi untuk disembunyikan.
Henrik Ripa
6

Semua server web memiliki satu atau lebih "file default". Ini adalah file yang akan ditampilkan setiap kali pengunjung pergi ke URL yang berakhir dengan garis miring /, yaitu folder.

Jika nama file default pada server web Anda adalah index.phpdan pengunjung pergi ke www.example.com/pagename/, mereka sebenarnya mengakses www.example.com/pagename/index.php.

Jika tidak ada trailing /, server web mungkin hanya menulis ulang URL untuk menghapusnya, karena itu tidak perlu. Situs ini, pada kenyataannya, melakukan itu.

Athoxx
sumber
2
Saya tidak yakin pertanyaannya adalah "bagaimana" tetapi "mengapa". Patrik jawaban Anda benar-benar benar tentang caranya. Namun Stephen, menjawab "mengapa"
Brandt Solovij
4

Ini adalah jenis skema URI "keren" yang saya targetkan di situs web pribadi saya.

Secara pribadi, alasan saya mulai melakukannya (dan mungkin lebih banyak perancang / pengembang web juga!) Adalah setelah membaca artikel "URI keren tidak berubah" - dokumen ini ditulis oleh ayah pendiri World Wide Web, Tim Berners -Lee.

Dalam artikel Tim Berners-Lee yang terkenal, ia pada dasarnya menyatakan alasan yang sama dengan Stephen Ostermiller dalam jawaban yang sangat baik untuk pertanyaan ini .

Untuk memberikan jawaban yang lebih spesifik untuk pertanyaan utama Anda, "Mengapa ekstensi disembunyikan di URL?" Ya, saya akan mengatakan bahwa alasan utama saya adalah:

1. Untuk membuktikan di masa depan, URI:

Sebagai contoh, itu mungkin terdengar seperti ide yang baik pada saat itu untuk menggunakan URI seperti: di http://www.example.com/page.pl mana .plmenjadi contoh file untuk skrip Perl. Namun, pada hari ini, sebagian besar pengembang web menggunakan ASP.NET atau PHP untuk backend-scripting, jadi meskipun hari ini , http://www.example.com/page.php terdengar seperti ide yang lebih baik, akhirnya PHP dan ASP / ASP.net akan menjadi kuno. Jadi ide yang lebih baik adalah hapus saja ekstensi tersebut.

2. Keterbacaan dan Daya Ingat:

Jauh lebih mudah bagi URI “keren” untuk diberikan kepada orang secara lisan, di atas kertas (misalnya iklan, kartu nama, dll.), Belum lagi lebih mudah diingat.

3. "Hackability" *

Meskipun saya akan mengatakan bahwa sebagian besar pengguna akhir-akhir ini mungkin pergi melalui mesin pencari untuk semuanya - Saya bahkan telah melihat orang-orang yang akan pergi ke bilah alamat dan mengetik www.google.com, dan kemudian menggunakan Google untuk benar-benar mengetik www.ebay.com! Tapi, saya pikir jika saya memiliki situs web berbasis multimedia, URI http://www.example.com/videomengisyaratkan bahwa bagian musik dapat ditemukan di bawah URI http://www.example.com/audio, dan seterusnya. (Saya masih menggunakan bilah alamat untuk mengunjungi situs web - Saya “sekolah tua” tentang hal semacam itu!)

* (! Oh “Hackability” - tidak kata yang bahkan ada ?! Yah, itu tidak sekarang !) :-)

4. ** Estetika: Agar terlihat lebih cantik! (Salahkan OCD saya!)

Namun, saya perhatikan dengan membaca berbagai situs web yang berhubungan dengan SEO, bahwa banyak webmasers sebenarnya menambahkan ekstensi file ke URI dinamis, misalnya:

URI yang sebenarnya mungkin: http://www.example.com/article

Namun, webmaster akan melakukan penulisan ulang untuk membuat URI "terlihat" statis, seperti: http://www.example.com/article.html

Logika di balik ini adalah bahwa pada dasarnya, mesin pencari akan menetapkan peringkat yang lebih tinggi untuk halaman statis (yang, tampaknya, lebih kecil kemungkinannya untuk berubah). (Meskipun saya bukan ahli dalam SEO, saya pribadi tidak setuju dengan ide ini - saya menyesali hal itu dengan pemikiran di balik algoritma Google dan Bing, akan membutuhkan sedikit lebih dari ekstensi file palsu untuk con cara Anda Anda ke posisi tiang SERP!)

Untuk informasi lebih lanjut tentang penamaan URI, saya sarankan membaca artikel ini:

Tim Berners-Lee:

Tips QA W3C:

Brian Kelly (Fokus Web UK / UKOLN - Universitas Bath):

Semoga ini membantu!

Jordan Clark
sumber
2

Saya setuju sepenuhnya untuk semua jawaban di atas. Hanya menambahkan bahwa salah satu alasan mengapa ekstensi disembunyikan di URL adalah untuk keamanan. Sederhananya, jika Anda tidak mengekspos ekstensi dalam URL, sedikit sulit untuk mengetahui teknologi di mana aplikasi telah dibangun. Jadi katakanlah sebuah halaman dibuat dalam PHP dan ekstensi tidak disembunyikan, maka peretas berpotensi menemukan kerentanan PHP dan menggunakannya untuk menjalankan beberapa aktivitas berbahaya.

Vishal Raj
sumber
Saya setuju dengan komentar Anda, tetapi saya pikir menggunakan URI untuk mengaburkan teknologi backend Anda sebagai tindakan keamanan tidak ada gunanya. Pada pandangan pertama, Anda sedang menyembunyikan teknologi tertentu yang digunakan. Sayangnya, satu-satunya orang yang akan "dibodohi" adalah pengguna akhir; beberapa (jika tidak sebagian besar) di antaranya tidak tahu apa URL itu, apalagi mengatakan ASP / PHP / etc. Karena tidak memiliki frasa yang lebih baik, Anda agak ”mengabar kepada paduan suara.”
Jordan Clark
1

Anda menyembunyikan ekstensi halaman Anda atau tidak, orang masih bisa tahu teknologi apa yang Anda gunakan. Dengan menggunakan cURL, bukan tidak mungkin untuk mendapatkan teknologi Anda dengan mengambil informasi header.

curl -I -L rembatvideo.ga

Kemudian, Anda akan melihat sesuatu seperti teknologi Anda, permintaan cache, koneksi dan banyak lagi.

Hans Isaa
sumber
0

Sepenuhnya setuju seperti yang dijelaskan oleh "Stephen Ostermiller" tetapi saya ingin menyebutkan trik di balik itu untuk menyembunyikan ekstensi URL. Dan untuk itu Anda harus menggunakan aturan penulisan ulang .htaccess , berikut ini skrip yang membantu Anda:

Alihkan .phppermintaan eksternal ke URL tanpa ekstensi

RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]
Rajesh Magar
sumber