Mod_rewrite Pendahuluan dan Lembar Curang – Referensi Cepat

Penyingkapan: Dukungan Anda membantu menjaga situs tetap berjalan! Kami mendapatkan biaya referensi untuk beberapa layanan yang kami rekomendasikan pada halaman ini.


mod_rewrite adalah bagian dari perangkat lunak server web Apache yang berjalan di komputer host web Anda. Ini memungkinkan URL untuk diubah secara dinamis, atau “ditulis ulang.”

Anda akan melihat mod_rewrite beraksi jika Anda menggunakan WordPress dengan permalink “cantik” diaktifkan. Secara default, semua halaman WordPress dimuat menggunakan URL yang berisi nomor ID, dan mungkin variabel lain yang memberi tahu WordPress apa yang harus dimuat. Tetapi ketika permalink cantik diaktifkan, aturan mod_rewrite mengubah variabel jelek itu menjadi kata-kata. Kami terkadang menyebut URL yang dihasilkan “bersih.”

Menulis ulang dengan mod_rewrite pada dasarnya adalah proses menerjemahkan URL dari yang kotor ke yang bersih dengan cepat. Pengunjung tidak pernah melihat perubahan URL di bilah alamat, karena pemrosesan ditangani oleh Apache sebelum sesuatu dikirim ke browser pengunjung.

Sangat mungkin untuk menjalankan situs web tanpa menggunakan mod_rewrite, atau membersihkan URL. Tapi inilah mengapa kebanyakan orang menggunakannya:

  • Untuk membuat URL lebih mudah dibaca manusia. URL “Cantik” lebih berkesan, lebih mudah diketik, dan lebih mudah dibaca dengan keras.
  • Untuk membuat URL lebih mudah ditafsirkan oleh mesin pencari. URL yang cantik memberi tahu mesin pencari tentang halaman apa itu, tetapi kumpulan nomor dan variabel ID tidak. Mesin pencari menyukai semantik, jadi menulis ulang URL membantu memastikan bahwa halaman tersebut dikategorikan dan diindeks dengan benar.
  • Untuk sementara buat pengalihan dari satu file atau path ke yang lain.

Menulis Aturan Mod_rewrite

Jika Anda menggunakan Apache, Anda harus meminta host web Anda untuk mengaktifkan mod_rewrite di file http.conf di akun Anda. Dalam banyak kasus, mod_rewrite diaktifkan secara default.

Selanjutnya, Anda harus membuat file .htaccess di direktori root akun hosting Anda. File .htaccess mengontrol direktori root dan semua file di bawahnya, kecuali jika Anda menimpanya dengan file .htaccess lain di bawah pohon folder. Jika Anda sudah memiliki file .htaccess, buat salinan cadangan sebelum melanjutkan.

Aturan penulisan ulang memiliki dua bagian. Baris pertama mengaktifkan arahan mesin penulisan ulang di Apache. (Baris yang dimulai dengan # adalah komentar, yang diabaikan.) Bagian kedua dari pernyataan mod_rewrite memberi tahu mesin penulisan ulang bagaimana URL harus diubah. Jadi kami menyatakan kondisinya, dan kemudian kami memberi tahu Apache apa yang harus dilakukan. Ini adalah contoh aturan yang mengarahkan pengunjung dari satu file ke file lainnya.

# Aktifkan Penulisan Ulang
Tulis ulang pada
# Ubah oldname.html menjadi newname.html
RewriteRule ^ oldname.html $ newname.html

Aturan ini memeriksa file yang bernama oldname.html (kondisi). Jika menemukan kecocokan, secara dinamis akan menggantinya dengan newname.html. Pengguna akhir melihat konten oldname.html, tetapi melihat newname.html di bilah URL browser mereka. Jika mod_rewrite tidak cocok dengan oldname.html, aturan tersebut akan diabaikan.

Mencari Pola

Membuat satu aturan untuk setiap URL akan memakan banyak waktu, jadi kita perlu menggunakan ekspresi reguler. Ekspresi reguler mencari pola dan mengganti satu keping string dengan yang lain. Ambil contoh ini:

# Aktifkan Penulisan Ulang
Tulis ulang pada
# Ubah author / NAME / menjadi author.php? Id = NAME
RewriteRule ^ author / ([a-z] +) /? $ Author.php? Id = $ 1 [L]

Untuk menguraikannya, beginilah kondisinya ^ author / ([a-z] +) /? $ Berfungsi:

  • ^ adalah awal dari aturan
  • penulis / adalah string yang kami cari di URL asli
  • ([a-z] +) adalah wildcard – mencari kata-kata yang muncul setelah penulis /
  • /? menambahkan garis miring di akhir URL
  • $ menandai akhir dari kondisi.

Dan inilah cara author.php? Id = tindakan $ 1 bekerja:

  • author.php? id = adalah string yang ingin kita tulis
  • $ 1 adalah pengganti untuk kata-kata yang kami temukan dalam kondisi di atas.

Di akhir aturan, [L] adalah bendera yang memberitahu Apache untuk berhenti menerapkan aturan lagi jika ini diproses.

Ini hanyalah contoh yang sangat mendasar tentang apa yang dapat dilakukan mod_rewrite. Alih-alih menulis [a-z], kita dapat menggunakan [xyz] untuk menemukan huruf x, y atau z, atau (y | n) untuk menemukan y atau n. Anda dapat menemukan referensi yang lebih lengkap untuk sintaks ekspresi reguler di sumber daya di bawah ini.

Flag Tulis Ulang Aturan

Pada contoh di atas, kami menambahkan bendera, [L], di akhir aturan. Bendera bersifat opsional. Mereka harus dimasukkan dalam satu set tanda kurung kotak di akhir baris, dan jika Anda ingin menggunakan beberapa flag, Anda harus menempatkan koma di antara mereka.

Bendera dapat ditulis secara lengkap, atau sebagai versi singkat. Sementara area flag pendek lebih mudah untuk diketik, menggunakan flag panjang adalah ide yang bagus jika Anda ingin membuat kode Anda mudah dibaca.

  • B: lolos dari karakter non-alfanumerik; mungkin memerlukan AllowEncodedSlashes diatur ke Hidup.
  • C atau rantai: rantai aturan ke aturan berikutnya dalam file .htaccess Anda; yang kedua hanya dieksekusi jika hasil pertama dalam pertandingan.
  • CO atau cookie: membuat cookie ketika aturan cocok; membutuhkan atribut tambahan.
  • DPI atau discardpath: buang PATH_INFO di URL yang ditulis ulang.
  • E atau env: menetapkan variabel lingkungan.
  • END: mirip dengan L, ini menghentikan pemrosesan penulisan ulang lagi.
  • F or forbidden: mengembalikan status Forbidden 403 dengan respons terhadap aturan.
  • G atau hilang: mengembalikan status Gone 410 dengan respons terhadap aturan.
  • H atau pawang: memaksa aturan untuk menggunakan pawang tertentu, yang ditentukan sebagai variabel.
  • L atau terakhir: berhenti memproses aturan.
  • N atau berikutnya: memulai set aturan saat ini lagi, menggunakan hasil dari aturan sebagai input.
  • NC atau nocase: menonaktifkan sensitivitas huruf untuk aturan.
  • NE atau noescape: mengubah karakter khusus menjadi kode hex yang setara.
  • NS atau nosubreq: menghentikan penulisan ulang agar tidak diterapkan ke subrequest.
  • P atau proksi: mendorong hasil aturan ke mod_proxy, dan mengabaikan aturan lainnya.
  • PT atau passthrough: mengubah jalur file menjadi URL.
  • QSA atau qsappend: menggabungkan string kueri dengan yang baru.
  • QSD atau qsdiscard: membuang string kueri yang lama dan menggantinya.
  • QSL atau qslast: membagi string kueri pada tanda tanya terakhir dalam string.
  • R atau redirect: mengeluarkan redirect HTTP.
  • S atau lewati: melompati sejumlah aturan; harus didefinisikan sebagai [S = n], di mana n adalah jumlah aturan untuk dilewati.
  • T or type: Menetapkan tipe MIME dari respons aturan.

kupon hosting web

Mencari banyak hal tentang mod_rewrite hosting?
A2 Hosting mendapat skor # 1 dalam tes kecepatan terbaru kami. Saat ini Anda dapat menghemat hingga 50% pada paket ramah-pengembang mereka. Gunakan tautan diskon ini
untuk mendapatkan kesepakatan.

Variabel Server

Daftar di bawah ini berisi banyak variabel server, beberapa di antaranya dapat Anda gunakan dengan mod_rewrite. Tidak semua variabel didukung oleh semua server, dan sama-sama, Anda mungkin dapat menggunakan variabel server yang tidak tercantum di sini.

Jika Anda sudah tahu tentang HTTP header, banyak variabel server dalam daftar ini akan Anda kenal, tetapi ada beberapa yang secara khusus disediakan untuk digunakan dengan mod_rewrite.

  • API_VERSION: tanggal versi API.
  • AUTH_TYPE: authtype; mengembalikan NONE, BASIC, DIGEST atau FORM.
  • CONN_REMOTE_ADDR: alamat IP rekan.
  • CONTEXT_DOCUMENT_ROOT: informasi tentang pemetaan direktori di Apache.
  • CONTEXT_PREFIX: informasi tentang pemetaan direktori di Apache.
  • DOCUMENT_ROOT: jalur absolut untuk dokumen.
  • HANDLER: nama handler.
  • HTTP_ACCEPT: tajuk terima HTTP, jika ada di tajuk permintaan HTTP.
  • HTTP_COOKIE: cookie, jika ada di header permintaan HTTP.
  • HTTP_FORWARDED: jalur yang sebenarnya, jika ada di header permintaan HTTP.
  • HTTP_HOST: server saat ini, jika ada di header permintaan HTTP.
  • HTTP_PROXY_CONNECTION: jalur proxy HTTP, jika ada di header permintaan HTTP.
  • HTTP_REFERER: URL halaman pengarah.
  • HTTP_USER_AGENT: agen pengguna yang digunakan untuk mengakses halaman.
  • HTTP2: apakah koneksi menggunakan HTTP2; mengembalikan ON atau OFF.
  • HTTPS: apakah koneksi menggunakan HTTPS; mengembalikan ON atau OFF.
  • IPV6: apakah koneksi menggunakan IPVS; mengembalikan ON atau OFF.
  • IS_SUBREQ: apakah permintaan itu adalah subrequest; benar atau salah.
  • PATH_INFO: jalur data yang mengikuti nama file.
  • QUERY_STRING: karakter dalam URL, setelah tanda tanya.
  • REMOTE_ADDR: IP pengguna.
  • REMOTE_HOST: nama domain yang sepenuhnya memenuhi syarat pengguna.
  • REMOTE_USER: nama pengguna pengguna yang diautentikasi.
  • REMOTE_IDENT: nama pengguna pengguna terotentikasi, dikembalikan oleh identd.
  • REQUEST_FILENAME: jalur lokal ke file atau skrip dalam permintaan.
  • REQUEST_METHOD: metode permintaan; KEPALA, PUT, DAPATKAN atau POS.
  • REQUEST_SCHEME: skema dalam URI permintaan.
  • REQUEST_URI: URI permintaan, sebagai jalur.
  • SCRIPT_FILENAME: jalur absolut untuk skrip.
  • SCRIPT_GROUP: nama grup skrip.
  • SCRIPT_USER: pengguna yang memiliki skrip.
  • SERVER_ADDR: IP server tempat file .htaccess disimpan.
  • SERVER_ADMIN: administrator server, seperti yang dikonfigurasikan di Apache.
  • SERVER_NAME: nama server, seperti yang dikonfigurasikan di Apache.
  • SERVER_PORT: nomor port tujuan permintaan dikirimkan.
  • SERVER_PROTOCOL: protokol dan revisi permintaan.
  • SERVER_SIGNATURE: versi server dan nama host.
  • SERVER_SOFTWARE: string ID untuk server.
  • THE_REQUEST: permintaan secara keseluruhan.
  • WAKTU: tanggal dan waktu dalam format YYYYMMDDHHMMSS.
  • TIME_DAY: hari ini.
  • TIME_HOUR: jam saat ini.
  • TIME_MIN: menit saat ini.
  • TIME_MON: bulan ini.
  • TIME_SEC: detik saat ini.
  • TIME_WDAY: hari ini, dikembalikan sebagai angka (dimulai dengan 0 untuk hari Minggu).
  • TIME_YEAR: tahun ini.

Sumber daya

  • Panduan Pemula untuk Mod_rewrite: panduan ini berasal dari 2004, tetapi memberikan landasan yang baik dalam prinsip-prinsip mod_rewrite.
  • Penulisan Ulang URL untuk Pemula: panduan komprehensif untuk pengguna pemula dan menengah.
  • Lembar Tulis Ulang Apache: versi HTML lembar contekan yang awalnya diterbitkan di iLoveJackDaniels.com.
  • Pengantar Ekspresi Reguler Tingkat Lanjut: kembangkan pengetahuan Anda tentang ekspresi reguler dengan panduan ini.
  • RegEx Pal: periksa sintaks ekspresi reguler Anda sebelum menempatkannya di situs Anda.

Ringkasan

mod_rewrite adalah cara yang berguna dan kuat untuk mengontrol perilaku Apache. Anda dapat melakukan banyak hal dengan mod_rewrite yang belum kami bahas di sini. Ini termasuk pengalihan, mencegah hotlinking gambar, melarang pengunjung tertentu dari situs Anda, dan banyak lagi. Cara terbaik untuk meningkatkan mod_rewrite adalah belajar tentang ekspresi reguler.

Bacaan Lebih Lanjut dan Sumberdaya

Kami memiliki lebih banyak panduan, tutorial, dan infografis yang berkaitan dengan pengembangan web:

  • Pengenalan dan Sumberdaya PHP: pelajari semua tentang bahasa backend paling populer yang digunakan di web.
  • Pemrograman Jaringan dengan Soket Internet: pelajari semua tentang jaringan di internet.
  • Pengenalan dan Sumber Daya MySQL: MySQL adalah salah satu basis data paling populer di internet.

Cara Memilih CMS yang Tepat

Tidak yakin CMS apa yang ingin Anda gunakan? Lihat artikel kami, Cara Memilih CMS yang Tepat.

Daftar Ultimate Alat Webmaster A-Z
Cara Memilih CMS yang Tepat

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map