Itu sebenarnya bukan masalah estetika, tetapi memang perbedaan teknis. Direktori memikirkannya benar-benar benar dan cukup menjelaskan semuanya. Mari kita selesaikan:
Anda kembali ke zaman batu sekarang atau hanya melayani halaman statis
Anda memiliki struktur direktori tetap di server web Anda dan hanya file statis seperti gambar, html, dan sebagainya - tanpa skrip sisi server atau apa pun.
Browser meminta /index.htm
, itu ada dan dikirimkan ke klien. Kemudian Anda memiliki banyak - katakanlah - film DVD ditinjau dan halaman html untuk masing-masing dalam /dvd/
direktori. Sekarang seseorang meminta /dvd/adams_apples.htm
dan dikirimkan karena ada di sana.
Pada suatu hari, seseorang hanya meminta /dvd/
- yang merupakan direktori dan server berusaha mencari tahu apa yang harus disampaikan. Selain pembatasan akses dan sebagainya ada dua kemungkinan: Tampilkan pengguna isi direktori (Saya yakin Anda sudah melihat ini di suatu tempat) atau menunjukkan file default (di Apache itu adalah: DirectoryIndex: sets the file that Apache will serve if a directory is requested.
)
Sejauh ini bagus, ini adalah kasus yang diharapkan. Itu sudah menunjukkan perbedaan dalam penanganan, jadi mari kita masuk ke dalamnya:
Pada 5:34 Anda membuat kesalahan mengunggah file Anda
(Yang omong-omong benar-benar dapat dimengerti.) Jadi, Anda melakukan sesuatu yang sepenuhnya salah dan bukannya mengunggah /dvd/the_big_lebowski.htm
Anda mengunggah file itu sebagai dvd
(tanpa ekstensi) ke /
.
Seseorang mem-bookmark daftar /dvd/
direktori Anda (tentu saja Anda tidak ingin membuat dan selalu memperbarui yang bagus itu index.htm
) dan sedang mengunjungi situs web Anda. Konten direktori dikirimkan - semua baik-baik saja.
Seseorang mendengar daftar Anda dan sedang mengetik /dvd
. Dan sekarang sudah kacau. Alih-alih daftar direktori DVD Anda, server menemukan file dengan nama itu dan memberikan file Big Lebowski Anda.
Jadi, Anda menghapus file itu dan memberi tahu orang itu untuk memuat ulang halaman tersebut. Server Anda mencari /dvd
file, tetapi hilang. Sebagian besar server kemudian akan melihat bahwa ada direktori dengan nama itu dan memberi tahu klien bahwa yang dicari memang ada di tempat lain. Responsnya kemungkinan besar adalah:
Status Code:301 Moved Permanently
dengan Location: http://[...]/dvd/
Jadi, sama sekali mengabaikan apa yang Anda pikirkan tentang direktori atau file, server hanya dapat menangani hal-hal seperti itu dan - kecuali jika dikatakan berbeda - memutuskan untuk Anda tentang arti "slash or not".
Akhirnya setelah menerima respons ini, klien memuat /dvd/
dan semuanya baik-baik saja.
Itu baik? Tidak.
"Baik-baik saja" tidak cukup baik untukmu
Anda memiliki beberapa halaman dinamis di mana semuanya dilewatkan ke /index.php
dan diproses. Semuanya bekerja cukup baik sampai sekarang, tetapi semuanya mulai terasa lebih lambat dan Anda menyelidikinya.
Segera, Anda akan melihat bahwa /dvd/list
melakukan hal yang persis sama: Mengarahkan kembali /dvd/list/
yang kemudian diterjemahkan secara internal index.php?controller=dvd&action=list
. Satu permintaan tambahan - tetapi bahkan lebih buruk! customer/login
pengalihan customer/login/
yang pada gilirannya mengarahkan ke URL HTTPS dari customer/login/
. Anda akhirnya memiliki banyak pengalihan HTTP yang tidak perlu (= permintaan tambahan) yang membuat pengalaman pengguna lebih lambat.
Kemungkinan besar Anda memiliki indeks direktori default di sini juga: index.php?controller=dvd
tanpa action
hanya memuat secara internal index.php?controller=dvd&action=list
.
Ringkasan:
Jika berakhir dengan /
itu tidak pernah bisa menjadi file. Tidak ada menebak server.
Slash atau tanpa slash adalah arti yang sama sekali berbeda. Ada perbedaan teknis / sumber daya antara "slash or no slash", dan Anda harus menyadarinya dan menggunakannya sesuai. Hanya karena server kemungkinan besar memuat /dvd/index.htm
- atau memuat skrip yang benar - ketika Anda mengatakan /dvd
: Itu berhasil, tetapi bukan karena Anda membuat permintaan yang tepat. Yang seharusnya /dvd/
.
Menghilangkan garis miring bahkan jika Anda memang bermaksud memotong versi memberi Anda penalti permintaan HTTP tambahan. Yang selalu buruk (pikirkan latensi seluler) dan memiliki bobot lebih dari "URL cantik" - terutama karena perayap tidak sebodoh yang diyakini atau ingin Anda yakini oleh SEO;)