URL Bersih Pria Miskin vs. Mod_Rewrite

8

Di perusahaan tempat saya bekerja, kami bersiap-siap untuk merancang situs web baru, dan ada beberapa ketidaksepakatan tentang cara melakukan URL bersih. Selama tahun lalu kami telah melakukan perbaikan kecil pada situs web kami yang ada untuk mengantisipasi desain ulang skala besar, yang melibatkan URL Orang Miskin Bersih ™.

Contoh:
http://www.example.com/products/widgets/index.php

http://www.example.com/products/sprockets/index.php

Untuk situs baru, ada beberapa pembicaraan tentang penggunaan mod_rewrite:

  1. Permintaan pengguna http://www.example.com/products/widgets/
  2. mod_rewrite mengirimkannya ke http://www.example.com/index.php?page=products/widgets
  3. index.php mengirimkannya ke halaman sebenarnya http://www.example.com/products/widgets.php

Saya gagal melihat bagaimana semua rigamaroll ini menambah nilai apa pun. Karyawan yang mendukung mod_rewrite mengklaim bahwa lebih sedikit direktori yang setara dengan pemeliharaan yang lebih mudah.

Tidak ada halaman kami yang ada menggunakan variabel dalam string kueri. Semua konten ada dalam file yang sebenarnya. Kami berencana untuk memasukkan beberapa konten ke dalam basis data, seperti siaran pers dan pameran dagang mendatang yang akan kami hadiri, tetapi sebagian besar halaman hanya akan menggunakan PHP untuk menyertakan HTML umum seperti header, footer, dan navigasi. Saya pasti siap menggunakan mod_rewrite untuk konten dinamis seperti itu.

Apakah ada beberapa manfaat besar yang saya lewatkan sehingga kita harus menggunakan mod_rewrite untuk semuanya? Apakah URL Bersih Orang Miskin ™ cukup untuk bagian non-basis data situs kami?

Scott
sumber
saya pikir begitu ... terlalu banyak kerumitan untuk url bersih ...

Jawaban:

3

Proses 3 langkah yang Anda uraikan di atas tampak berlebihan dan tidak berguna seperti yang dinyatakan di atas. Jika dalam langkah 3 index.php membawa mereka ke halaman "nyata" lalu mengapa repot-repot dengan mod_rewrite sama sekali? Melakukan hal itu akan meniadakan kelebihan yang ditawarkan mod_rewrite. Yaitu, URL ramah mesin pencari dan pemeliharaan situs yang lebih mudah. Jika Anda berhenti pada langkah kedua, Anda mendapat manfaat dari mod_rewrite dengan hanya memiliki satu halaman untuk dipelihara namun dapat melayani hingga jumlah halaman yang hampir tidak terbatas dan menjadi transparan bagi pengguna dan mesin pencari karena mereka hanya melihat URL di langkah 1.

John Conde
sumber
4

Itu adalah mitos bahwa "/ pagename" atau "/pagename.htm" lebih baik untuk mesin pencari daripada "/pagename.php". Setidaknya di Google, pasti tidak ada dasar untuk ini (dan saya berasumsi yang lain juga). Demikian pula, bahkan "index.php? Page = pagename" tidak perlu ditulis ulang sebagai "/ pagename" - mesin pencari dapat memahami URL tersebut tanpa masalah, dan Google bahkan telah mencatat bahwa ia lebih suka pengguna tidak menulis ulang mereka tidak perlu ( http://googlewebmastercentral.blogspot.com/2008/09/dynamic-urls-vs-static-urls.html ). Jadi asalkan Anda tidak membuat URL tanpa akhir dengan parameter URL, URL yang ditulis ulang tidak selalu lebih ramah mesin pencari daripada URL yang tidak ditulis ulang .

Karena itu, pengguna dapat memilih URL yang bagus daripada URL yang jelek / kompleks. Jika kekhawatiran utama Anda adalah memiliki URL yang bagus di hasil pencarian, saya akan melihat mikroformat remah roti yang sekarang didukung Google ( http://googlewebmastercentral.blogspot.com/2010/09/rich-snippets-testing-tool- improvement.html ) karena ini sering dapat memberikan pengalaman pengguna yang lebih baik tentang URL dalam hasil pencarian. Ini tidak akan menyelesaikan masalah pengguna yang ingin menautkan URL yang tampak bagus, tetapi asalkan URL Anda tidak rumit tanpa akhir (dan contoh Anda tidak), kemungkinan tidak akan membuat perbedaan yang terukur jika Anda menulis ulang untuk itu kasus penggunaan. Jika tidak ada perbedaan yang terukur, maka mungkin tidak masuk akal untuk menghabiskan waktu merancang dan memelihara pengaturan seperti itu.

John Mueller
sumber
1

Apa yang Anda sebut sebagai "URL Bersih Pria Miskin" hanyalah URL bersih yang diterapkan melalui sistem file. Anda dapat memiliki jenis-jenis URL menggunakan mod_rewrite, sama seperti Anda dapat memiliki jenis URL kedua tanpa mod_rewrite.

URL bersih adalah persis seperti namanya - URL yang bersih atau terlihat bersih. Kedua

http://yoursite/foo/bar

dan

http://yoursite/foo/bar.php

adalah URL bersih. Istilah "URL bersih" tidak menentukan implementasi tertentu. Anda dapat menerapkan URL bersih dengan membuat halaman .html dalam cache setiap kali situs diperbarui jika Anda mau. mod_rewrite memungkinkan Anda memisahkan struktur URL dari struktur file tanpa pengalihan atau bingkai.

Dari apa kedengarannya, Anda saat ini tidak menjalankan situs berbasis database. Dan meskipun secara teknis mungkin memenuhi syarat sebagai situs web dinamis, itu mungkin lebih pada ujung statis dari spektrum jika Anda kebanyakan menggunakan PHP hanya untuk memasukkan header / footer. Itu bagus untuk situs kecil yang jarang perlu diperbarui, tetapi karena situs Anda semakin besar, Anda harus menerapkan CMS yang sebenarnya.

Di mana mod_rewrite bersinar adalah ketika Anda mulai mempertimbangkan rawatan. Alih-alih memiliki ratusan file php untuk setiap halaman produk (dengan banyak kode redundan), Anda dapat dengan mudah memiliki satu skrip yang menangani semua permintaan. Tetapi jika Anda tidak lagi memiliki pemetaan satu-ke-satu dari file .php aktual ke halaman web yang ditampilkan, maka Anda harus menggunakan sesuatu seperti mod_rewrite untuk merutekan permintaan halaman secara cerdas sambil mempertahankan ilusi struktur file / direktori yang sedang sana.

Jadi bukan subdirektori tambahan yang harus Anda khawatirkan. Fakta bahwa Anda membuat skrip .php terpisah untuk setiap halaman di situs Anda.

Lèse majesté
sumber
1

"Bersihkan URL" sering kali berarti tidak ada file ext; ini membantu menyembunyikan detail implementasi dari pemirsa. Keuntungannya adalah ketika Anda memutuskan untuk memindahkan situs Anda dari katakanlah, PHP ke Ruby on Rails, Anda dapat melakukannya tanpa mengubah satu URL.

Sekarang, walaupun mungkin untuk menjalankan situs Anda dengan ASP.net dan memiliki nama file yang berakhiran .php jika Anda ingin menjaga URL Anda tetap utuh, tampaknya lebih masuk akal untuk melakukannya dengan cara sedemikian rupa sehingga masalah tidak pernah muncul. .

http://www.example.com/news/2010/10/our-new-url-system/

Selalu bisa menjadi URL yang baik, bahkan jika Anda benar-benar mengubah arsitektur yang mendasarinya, atau beralih dari file statis menjadi yang dinamis .. atau sebaliknya.

Erik
sumber
0

Sepertinya saya seperti memiliki semua konten Anda dalam database akan jauh lebih cepat dan lebih mudah untuk dipelihara kemudian menggali melalui sistem file besar setiap kali Anda perlu melakukan pembaruan. Seperti yang disebutkan John Mueller di atas, URL yang bagus tidak akan membuat perbedaan besar dalam peringkat Anda, namun, Anda ingin mempertimbangkan untuk menggunakan Mod_Rewrite untuk menjaga URL yang ada dan nilainya. Yaitu jika:

example.com/widgets/index.php memiliki 1.000 tautan yang menunjuk padanya dan Anda mengubahnya menjadi example.com/pages/widgets.php Anda berisiko kehilangan banyak nilai itu (tentu saja Anda dapat mengarahkan ulang, tetapi dapat diperdebatkan apakah atau tidak itu akan melewati nilai yang sama)

Rekomendasi saya adalah jika Anda terus menyajikan konten statis, terus menggunakan sistem file, jika Anda mengubahnya menjadi konten dinamis, gunakan Mod_Rewrite untuk menjaga struktur URL Anda saat ini. Atau jika tidak mungkin untuk mempertahankan struktur saat ini gunakan Mod_Rewrite untuk membuat struktur yang akan stabil untuk pembaruan di masa mendatang.

Joshak
sumber
0

Seperti yang telah dikatakan, memiliki .phpatau ?page=tidak terlalu penting. Apa yang dilakukannya peduli adalah jika Anda melakukan sesuatu seperti ini:

http://www.example.com/index.php?page=13

Halo71
sumber