Kapan seharusnya trailing slash digunakan dalam URL? Misalnya - apakah URL saya akan suka /about-us/
atau suka /about-us
?
Saya sepenuhnya menyadari masalah yang berhubungan dengan SEO - duplikat konten dan hal kanonik; Saya mencoba mencari tahu mana yang harus saya gunakan dalam konteks melayani halaman dengan benar .
Misalnya, kolega saya berpikir bahwa garis miring pada akhirnya berarti "folder" - "direktori", jadi ini bukan gaya yang benar. Tapi saya pikir tanpa slash pada akhirnya - itu juga tidak sepenuhnya benar, karena hampir terlihat seperti folder, tetapi tidak dan itu bukan file normal juga, tetapi nama file tanpa ekstensi.
Apakah ada cara yang tepat untuk mengetahui mana yang harus digunakan?
Jawaban:
Menurut pendapat pribadi saya, garis miring adalah penyalahgunaan.
Pada dasarnya format URL berasal dari format file dan folder UNIX yang sama, kemudian, pada sistem DOS, dan akhirnya, diadaptasi untuk web.
Sumber: Wikipedia: Uniform Resource Identifier
Sumber lain yang baik untuk dibaca: Wikipedia: Skema URI
Sumber: Wikipedia Resource Resource Locator (URL)
Juga:
Sumber: Google WebMaster Central Blog - Untuk memotong atau tidak memotong
Akhirnya:
Garis miring di akhir URL membuat alamat terlihat "cantik".
URL tanpa garis miring di bagian akhir dan tanpa ekstensi terlihat agak "aneh".
Anda tidak akan pernah memberi nama file CSS Anda (misalnya) http://www.sample.com/stylesheet/ bukan?
TETAPI saya menjadi pendukung praktik terbaik web terlepas dari lingkungan. Ini bisa menjadi miring dan tidak jelas, seperti yang Anda katakan tentang URL tanpa ext.
sumber
index.html
(atau file dengan nama yang sama) ketika direktori diakses, begitu/foo/
juga/foo/index.html
tanpa kekacauan tambahan. Selain itu, di masa lalu, peramban akan ditambahkan/
ke nama domain, tetapi mereka (Firefox, Chrome, Opera) telah berubah untuk menghilangkan/
saat mengakses beranda.Ini bukan masalah preferensi.
/base
dan/base/
memiliki semantik yang berbeda. Dalam banyak kasus, perbedaannya tidak penting. Tetapi penting ketika ada URL relatif.child
relatif terhadap/base/
adalah/base/child
.child
relatif terhadap/base
adalah (mungkin secara mengejutkan)/child
.sumber
Uri.MakeRelativeUri
. Hasil mencerminkan apa yang Anda katakan. Saya memperbaiki masalah ini dengan menambahkan garis miring ke pangkalan sayaUri
.Saya selalu terkejut dengan penggunaan ekstensif garis miring pada URL non-direktori (antara lain WordPress). Ini benar-benar tidak boleh menjadi perdebatan baik-atau karena menempatkan tebasan setelah sumber daya secara semantik salah. Web dirancang untuk memberikan sumber daya yang dapat dialamatkan, dan alamat itu - URL - dirancang untuk meniru hierarki sistem file * nix-style. Dalam konteks itu:
Dengan menggunakan panduan ini, salah jika memangkas sumber daya non-direktori.
sumber
directory
(jika tidak,image.png
dalamhttp://hostname/directory
akan menunjuk kehttp://hostname/image.png
). Saya hanya mengatakan bahwa perbedaan antara file dan direktori mungkin tidak terlalu penting dari sudut pandang pengguna.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 sebagaidvd
(tanpa ekstensi) ke/
.Seseorang mem-bookmark daftar
/dvd/
direktori Anda (tentu saja Anda tidak ingin membuat dan selalu memperbarui yang bagus ituindex.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
denganLocation: 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 internalindex.php?controller=dvd&action=list
. Satu permintaan tambahan - tetapi bahkan lebih buruk!customer/login
pengalihancustomer/login/
yang pada gilirannya mengarahkan ke URL HTTPS daricustomer/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
tanpaaction
hanya memuat secara internalindex.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;)
sumber
dvd
)?Saat Anda membuat URL Anda
/about-us/
(dengan trailing slash), mudah untuk memulai dengan satu fileindex.html
dan kemudian mengembangkannya dan menambahkan lebih banyak file (mis.our-CEO-john-doe.jpg
) Atau bahkan membangun hierarki di bawahnya (mis/about-us/company/
./about-us/products/
, Dll.) Sesuai kebutuhan, tanpa mengubah URL yang diterbitkan . Ini memberi Anda fleksibilitas besar.sumber
/about-us
atau/about-us/
saya masih perlu mengubah URL yang diterbitkan dalam kedua kasus jika saya memperluas direktori. file baru/about-us/new-file.html
dalam kedua kasus !! Apa yang kulewatkan di sini?/about-us
dan/about-us/company
? Dalam hal melayani file, baik Apache dan IIS dapat menangani ini dengan baik, jadi saya tidak setuju./about-us
tautan yang ingin Anda tuju/about-us/company
, Anda harus menggunakanhref="https://stackoverflow.com/about-us/company"
atauhref="./company"
(tidak yakin tentang itu). Jika Anda berada di/about-us/
, meskipun, itu sederhana:href="company"
.Jawaban lain di sini tampaknya lebih suka menghilangkan garis miring. Ada satu kasus di mana garis miring akan membantu dengan optimasi mesin pencari (SEO). Itu adalah kasus bahwa dokumen Anda memiliki apa yang tampaknya menjadi ekstensi file yang bukan
.html
. Ini menjadi masalah dengan situs yang menilai situs web. Mereka mungkin memilih antara dua url ini:http://mysite.example.com/rated.example.com
http://mysite.example.com/rated.example.com/
Dalam kasus seperti itu, saya akan memilih yang dengan garis miring . Itu karena
.com
ekstensi adalah ekstensi untuk file perintah yang dapat dieksekusi Windows. Mesin pencari dan pemeriksa virus sering tidak menyukai URL yang muncul yang mengandung malware yang didistribusikan melalui mekanisme tersebut. Garis miring tampaknya mengurangi kekhawatiran, memungkinkan halaman untuk peringkat di mesin pencari dan oleh pemeriksa virus.Jika URL Anda tidak ada
.
di bagian file, maka saya akan merekomendasikan menghilangkan garis miring untuk kesederhanaan.sumber
Siapa bilang nama file perlu ekstensi ?? lihat mesin * nix kapan-kapan ...
Saya setuju dengan teman Anda, tanpa garis miring.
sumber
Dari perspektif SEO, memilih apakah akan menyertakan garis miring di akhir URL tidak relevan. Saat ini, sudah umum untuk melihat contoh keduanya di web. Situs tidak akan dihukum, atau pilihan ini akan memengaruhi peringkat mesin pencari situs web Anda atau pertimbangan SEO lainnya.
Cukup pilih konvensi penamaan URL yang Anda inginkan, dan sertakan tag meta kanonik di
<head>
bagian setiap halaman web.Mesin pencari dapat mempertimbangkan satu halaman web sebagai dua URL duplikat yang terpisah ketika mereka menjumpainya dengan dan tanpa garis miring, yaitu
example.com/about-us/
danexample.com/about-us
.Ini adalah praktik terbaik untuk memasukkan meta tag kanonik pada setiap halaman karena Anda tidak dapat mengontrol bagaimana situs lain menautkan ke URL Anda.
Tag kanonik terlihat seperti ini:
<link rel="canonical" href="https://example.com/about-us" />
. Menggunakan tag meta kanonik memastikan bahwa mesin pencari hanya menghitung masing-masing URL Anda sekali, terlepas dari apakah situs web lain menyertakan garis miring ketika mereka terhubung ke situs Anda.sumber