Masalah dengan .htaccess. Pengantar menggunakan mod_rewrite Apa yang dapat Anda lakukan dengan mod_rewrite




Modul penulisan ulang Mod digunakan untuk menulis ulang URL berdasarkan aturan. Artikel ini menjelaskan cara mengaktifkan dukungan modul penulisan ulang Mod di server web Apache pada sistem operasi Ubuntu.

Kami menghubungkan modul penulisan ulang Mod

Buka direktori /etc/apache2/mods-available dan pastikan ada file rewrite.load yang bertanggung jawab untuk memuat modul Mod rewrite. Untuk melakukannya, jalankan perintah berikut di konsol:

cd /etc/apache2/mods-tersedia ls

Harus ada file bernama rewrite.load dalam daftar file.

Sekarang mari kita pergi ke direktori /etc/apache2/mods-enabled dan membuat tautan simbolis ke file rewrite.load. Untuk melakukan ini, jalankan perintah:

Cd /etc/apache2/mods-enabled sudo ln -s ../mods-available/rewrite.load rewrite.load

Mengubah pengaturan host virtual

Selanjutnya, Anda perlu mengubah pengaturan host virtual, yang seharusnya menggunakan modul penulisan ulang Mod. Untuk melakukan ini, Anda perlu membuka file pengaturan untuk host tertentu. Sebagai contoh, ambil file standar /etc/apache2/sites-available/default , yang berisi pengaturan untuk host bernama localhost. Jalankan perintah berikut untuk membuka file di GEdit:

sudo gedit /etc/apache2/sites-available/crocodilus

Temukan bagian dalam file dan ubah baris AllowOverride None menjadi AllowOverride All . Seharusnya terlihat seperti ini:

Pilihan Indexes FollowSymLinks MultiViews AllowOverride All Order Allow, Deny Allow from All

Mulai ulang Apache

Sekarang tinggal me-restart server web Apache dengan perintah.

Pelajaran ini menjelaskan apa itu mod_rewrite dan cara menggunakannya. Tiga contoh praktis dijelaskan: pengalihan 301, pembuatan URL ramah, dan pemblokiran penggunaan tautan gambar.

mod_rewrite adalah modul server web Apache yang bagus. Ini sangat fleksibel dan dapat melakukan banyak fungsi yang berguna.

Menggunakan mod_rewrite mungkin sulit bagi pemula karena sintaks dan mekanisme pemrosesan yang rumit. Namun, setelah Anda memahami beberapa konsep dasar, Anda dapat menggunakan mod_rewrite secara efektif di server Anda sendiri.

Dalam tutorial ini, kita akan mempelajari cara membuat beberapa aturan dasar mod_rewrite menggunakan contoh nyata yang dapat kita gunakan untuk situs web kita sendiri. Disarankan agar Anda mempelajari materi tentang ekspresi reguler dengan cermat jika Anda belum mengetahuinya.

Apa itu mod_rewrite?

mod_rewrite adalah modul server Apache untuk memanipulasi (mengubah) URL. Seringkali ini berarti menerima permintaan URL dari pengunjung dan mengirimkan konten dari URL lain kepada mereka. Misalnya, pengunjung memasukkan URL berikut di bilah alamat browser:

http://www.example.com/page.html

Apache biasanya mengirimkan kembali konten file page.html ke pengguna. Namun, dengan mod_rewrite dimungkinkan untuk mengirimkan konten dari URL lain, seperti ini:

http://www.example.com/another_page.html

Penting untuk dipahami bahwa perubahan alamat terjadi di dalam server Apache. Bilah alamat browser akan tetap menampilkan http://www.example.com/page.html , tetapi server Apache akan mengirimkan konten laman ke http://www.example.com/another_page.html . Ini berbeda dari pengalihan HTTP, yang memberi tahu browser untuk mengunjungi URL yang berbeda.

Meskipun modul mod_rewrite juga dapat melakukan pengalihan HTTP dan banyak fungsi lainnya, seperti mengembalikan kode kesalahan HTTP.

Apa yang bisa dilakukan dengan mod_rewrite

Modul mod_rewrite memungkinkan Anda membuat aturan untuk memanipulasi URL. Misalnya, Anda dapat memasukkan nilai yang diperoleh dari URL yang diminta ke dalam URL baru, menyiapkan pengalihan URL dinamis. Atau Anda dapat memeriksa variabel server seperti HTTP_USER_AGENT (tipe browser) dan mengubah URL hanya jika Anda menggunakan browser seperti Safari yang berjalan di iPhone.

Berikut adalah beberapa fungsi umum yang dilakukan mod_rewrite:

  • Membuat URL "ramah" yang menutupi URL "canggung". Misalnya, Anda dapat menyamarkan URL asli www.example.com/display_article.php?articleId=my-article dengan URL yang tampak bagus www.example.com/articles/my-article/ . Dan semua orang akan dapat menggunakan URL "ramah" alih-alih yang asli.
  • Blokir penggunaan tautan gambar di situs Anda. Untuk menghentikan sumber daya lain menggunakan gambar yang dihosting di situs Anda, Anda dapat menggunakan mod_rewrite untuk mengirimkan kesalahan "Terlarang" jika URL perujuk bukan milik situs Anda.
  • Mengarahkan ulang URL kanonis. Banyak halaman dapat diakses melalui beberapa URL, seperti www.example.com/mypage.html dan example.com/mypage.html . Anda dapat menggunakan mod_rewrite untuk mengarahkan ulang browser secara permanen ke URL yang "benar" seperti www.example.com/mypage.html . Antara lain, penggunaan mod_rewrite ini memastikan bahwa URL yang benar ditampilkan di hasil pencarian.
  • Hilangkan 404 kesalahan saat mengatur ulang situs Anda. Misalnya, Anda mendesain ulang situs dan telah memindahkan www.example.com/myarticle.html ke URL baru www.example.com/articles/myarticle.html . Dengan mod_rewrite Anda dapat mengarahkan ulang www.example.com/myarticle.html ke www.example.com/articles/myarticle.html agar pengunjung tidak mendapatkan error 404 "not found" saat mengunjungi URL lama. Berkat fleksibilitas mod_rewrite, mudah untuk membuat aturan yang akan mengalihkan permintaan URL lama ke URL baru.

Cara menggunakan mod_rewrite

Untuk menggunakan mod_rewrite, Anda perlu membuat arahan Apache untuk memberi tahu modul apa yang harus dilakukan. Arahan adalah pengaturan konfigurasi sederhana. Seringkali arahan ditempatkan dalam file .htaccess di folder root situs web Anda. Arahan berlaku untuk seluruh situs.

Dua arahan mod_rewrite yang paling penting adalah:

  • Mesin Tulis Ulang: Mengaktifkan/menonaktifkan mekanisme mod_rewrite untuk permintaan saat ini.
  • Aturan Tulis Ulang: Menjelaskan aturan perubahan URL.

Ini adalah contoh sederhana. Buat file .htaccess dengan konten berikut dan letakkan di situs Anda:

RewriteEngine di RewriteRule ^dummy\.html$ http://www.google.com/

File ini berisi pengaturan berikut:

  • RewriteRule ^dummy\.html$ http://www.google.com/ - alihkan permintaan ke laman dummy.html ke situs web Google menggunakan pengalihan 301.

Jika sekarang Anda membuka browser web dan mengunjungi halaman dummy.html di situs Anda (misalnya, dengan mengetikkan http://www.example.com/dummy.html di bilah alamat), maka, jika semuanya dilakukan tanpa kesalahan , Anda akan dialihkan ke situs http://www.google.com

Jika Anda mendapatkan error 404, hosting Anda mungkin tidak menggunakan mod_rewrite. Dalam hal ini, Anda perlu menghubungi administrator hosting.

Bagaimana RewriteRule Bekerja

Anda dapat menggunakan direktif RewriteRule untuk membuat aturan pengalihan. Sintaks umum dari direktif adalah:

Pergantian Pola Aturan Tulis Ulang

  • pola- pola ekspresi reguler. Jika URL cocok dengan pola, maka aturan dijalankan. Jika tidak, aturan tersebut dilewati.
  • Pengganti- URL baru yang akan digunakan sebagai pengganti alamat yang cocok dengan pola.
  • - satu atau lebih bendera yang menentukan perilaku aturan.

Anda dapat menambahkan aturan RewriteRule sebanyak yang Anda perlukan ke file .htaccess Anda. Modul mod_rewrite melewati semua aturan setiap kali diminta, memproses URL yang sesuai.

Jika aturan mengubah URL yang diminta ke alamat baru, maka URL baru akan digunakan lebih lanjut saat melakukan iterasi melalui file .htaccess, dan mungkin cocok dengan RewriteRule lain di bagian bawah file. (Jika perilaku ini perlu diubah, maka bendera L ("aturan terakhir") harus digunakan.)

Beberapa contoh penggunaan mod_rewrite

Cara termudah untuk menjelaskan mod_rewrite adalah dengan menunjukkan bagaimana mod_rewrite digunakan untuk memecahkan masalah praktis.

Contoh 1: Pengecualian 404

Terkadang URL laman di situs Anda berubah. Hal ini dapat terjadi saat konten sedang diatur ulang. Jika mesin telusur atau situs lain menautkan ke URL lama, pengguna akan menerima kesalahan "404 Tidak Ditemukan" saat mereka mencoba menggunakan tautan tersebut.

Untuk mengatasi masalah ini, Anda dapat menggunakan modul mod_rewrite untuk pengalihan 301. Ini mengirimkan header HTTP ke browser mana pun yang meminta URL lama, memberi tahu bahwa halaman tersebut telah dipindahkan ke URL baru. Itu juga menginformasikan mesin pencari untuk memperbarui indeks mereka dengan URL baru.

File .htaccess berikut akan mengalihkan permintaan ke URL baru:

RewriteEngine di RewriteRule ^my-old-url\.html$ /my-new-url.html

RewriteRule bekerja seperti ini:

  • ^my-old-url\.html$ adalah ekspresi reguler yang cocok dengan URL yang akan diubah. Polanya berarti: "cocok dengan awal URL (^) diikuti dengan teks "my-old-url.html" diikuti dengan karakter akhir URL ($)." Dalam ekspresi reguler, karakter titik (.) cocok dengan karakter apa pun, jadi kita perlu menggunakan garis miring terbalik untuk menunjukkan bahwa kita menginginkan titik (\.).
  • /my-new-url.html adalah bagian kedua dari RewriteRule , yang menjelaskan apa yang harus diubah. Dalam hal ini, hanya /my-new-url.html.
  • bagian ketiga dari aturan yang berisi satu atau lebih bendera yang diapit tanda kurung siku. Bendera memungkinkan Anda menambahkan opsi atau tindakan tertentu ke aturan. Contoh ini menggunakan 2 tanda: R=301 berarti "gunakan pengalihan 301 ke URL baru"; dan L berarti "aturan terakhir", atau dengan kata lain "berhenti memproses URL jika cocok dengan aturan".

Contoh 2: Membuat URL Ramah

Katakanlah Anda menulis skrip PHP display_article.php untuk menampilkan artikel di situs Anda. Anda dapat menautkan ke artikel menggunakan URL berikut:

http://www.example.com/display_article.php?articleId=artikel-saya

URL ini terlihat jelek dan kueri di dalamnya (?articleId=artikel-saya) mungkin membingungkan beberapa mesin telusur. Jauh lebih baik menggunakan URL seperti ini:

http://www.example.com/articles/my-article/

Anda dapat menggunakan mod_rewrite untuk mengonversi tautan dari format pertama ke format kedua, yang memungkinkan untuk menggunakan tautan ramah di halaman situs, dan alamat akan ditampilkan ke alamat asli yang tidak dapat dilihat oleh siapa pun. Untuk melakukannya, file .htaccess yang terletak di direktori root situs Anda harus berisi baris berikut:

RewriteEngine di RewriteRule ^articles/([^/]+)/?$ display_article.php?articleId=$1 [L]

Deskripsi aturan penulisan ulang:

  • ^articles/([^/]+)/?$ adalah ekspresi reguler yang cocok dengan URL apa pun dalam format articles/(article ID)/ . Bunyinya: "cocok dengan awal URL (^) diikuti oleh artikel teks/ diikuti oleh satu atau lebih karakter non-garis miring ([^/]+) , secara opsional diikuti dengan garis miring (/?) diikuti dengan karakter akhir URL ($) ". Perhatikan tanda kurung di sekitar [^/]+ bagian dari pola. Dengan demikian, teks yang sesuai dengan bagian ini, seperti "artikel saya" , disimpan untuk digunakan nanti.
  • display_article.php?articleId=$1 - Bagian aturan ini memberitahu Apache untuk menggunakan skrip display_article.php, yang meneruskan teks yang cocok dengan subpola [^/]+ dari bagian pertama ekspresi reguler (misalnya, "my -article") sebagai parameter articleId . $1 disebut masukan dan menyimpan teks yang cocok dengan subpola. Jika ekspresi reguler berisi subpola lain dalam tanda kurung, maka teks terkait akan disimpan dalam variabel $2, dan seterusnya.
  • [L] - seperti pada contoh sebelumnya, kami menggunakan bendera untuk menghentikan pemrosesan URL lebih lanjut sehingga alamat tidak diubah oleh aturan RewriteRule lainnya.

RewriteRule di atas mengambil URL yang diminta dalam format http://www.example.com/articles/my-article/ dan mengubahnya menjadi URL seperti http://www.example.com/display_article.php?articleId=my -artikel .

Contoh 3: Mencegah tautan gambar digunakan di situs Anda

Masalah umum lainnya yang dipecahkan oleh modul mod_rewrite adalah mencegah proyek web lain menggunakan tautan ke gambar di situs Anda. Katakanlah situs Anda memiliki halaman http://www.example.com/mypage.html yang berisi tag img berikut:

Situs lain mungkin menautkan langsung ke foto Anda di halaman mereka seperti ini:

Ini berarti bahwa situs orang lain tidak hanya "meminjam" gambar Anda, tetapi juga menggunakan beberapa lalu lintas server Anda untuk menampilkan gambar di halaman mereka. Dan jika situs orang lain memiliki arus pengunjung yang besar, maka situasi ini akan menjadi masalah!

Anda dapat menggunakan arahan mod_rewrite berikut untuk menghentikan semua situs selain milik Anda menggunakan tautan gambar. Tempatkan kode berikut dalam file .htaccess di direktori root situs Anda atau di folder dengan gambar yang ingin Anda lindungi. Ubah example.com menjadi nama domain Anda.

RewriteEngine di RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http://(www\.)?contoh\.com/.*$ RewriteRule .+\.(gif|jpg|png)$ - [ F]

Setelah Anda menyelesaikan semua operasi penyalinan, browser apa pun yang meminta gambar dari situs Anda menggunakan URL yang dimulai dengan nama domain selain www.example.com atau example.com akan menerima kesalahan "403 Forbidden". yang akan menghentikan situs lain menautkan ke gambar Anda.

Beginilah cara kerja aturan ini:

  • RewriteEngine aktif - aktifkan mekanisme mod_rewrite
  • RewriteCond %(HTTP_REFERER) !^$ - RewriteCond adalah direktif mod_rewrite lainnya. Ini memungkinkan Anda menyetel kondisi yang harus dipenuhi agar URL diproses oleh RewriteRule berikut. Dalam hal ini, kondisinya adalah adanya nilai dalam variabel HTTP_REFERER.
  • RewriteCond %(HTTP_REFERER) !^http://(www\.)?example\.com/.*$ - direktif RewriteCond kedua mengharuskan nilai variabel HTTP_REFERER tidak dimulai dengan http://www.example. com/ atau http://contoh.com/ . Bendera mengatur sensitivitas huruf besar-kecil.
  • RewriteRule .+\.(gif|jpg|png)$ - [F] - jika dua kondisi RewriteCond di atas tidak terpenuhi, maka aturan akan dilewati. Aturan itu sendiri mengembalikan kesalahan "403 Forbidden" (menggunakan flag [F]) jika URL berisi nama file gambar (string diakhiri dengan .gif , .jpg atau .png), tanda hubung pada parameter substitusi berarti "jangan' t ganti URL dengan alamat lain".

Artinya, seluruh rangkaian aturan dalam file .htaccess mengatakan, jika variabel HTTP_REFERER berisi nilai dan tidak dimulai dengan http://example.com/ atau http://www.example.com/ , dan URL yang diminta berisi nama file gambar, maka Anda harus menolak permintaan dengan error "403 Forbidden".

Kesimpulan

Dalam tutorial ini, kami telah menyediakan pengantar untuk menggunakan modul server mod_rewrite Apache untuk memanipulasi URL. Tiga contoh praktis yang dibahas hanya mencakup sebagian kecil dari semua kemampuan modul. Informasi lebih lanjut tentang mod-penulisan ulang dalam bahasa Rusia dapat ditemukan.

Penting:

    Dukungan file ".htaccess" hanya tersedia di hosting Linux. Pada fungsi hosting Windows ".htaccess" mengeksekusi file web.config.

    Modul dukungan ".htaccess" tersedia di semua paket hosting bersama berbasis OS Linux. Jika Anda menerima pesan yang mengatakan bahwa tidak ada dukungan saat menginstal CMS ".htaccess" abaikan saja.

Saya tidak memiliki file .htaccess, apa yang harus saya lakukan?

Jika Anda menyiapkan server web Apache tetapi tidak memilikinya .htaccess, buat dan tulis arahan yang diperlukan.

Untuk membuat .htaccess, masuk ke control panel hosting sesuai petunjuk : Place the file .htaccess di direktori situs menggunakan article: .

Jika Anda secara tidak sengaja menghapus file .htaccess, pulihkan. Atau tambahkan file standar .htaccess untuk CMS Anda:

File .htaccess tidak terlihat di cPanel

Untuk melihat file tersembunyi (dimulai dengan titik) di cPanel, ikuti langkah berikut:

Bagaimana cara mengaktifkan penulisan ulang mod?

Modul "mod_tulis ulang" hadir di semua paket hosting Linux. Mengaktifkan "mod_tulis ulang" tambahkan ke file .htaccess garis pandang.

Terkadang orang mengalami masalah - server apache tidak membaca file .htaccess Anda atau apache tidak menulis ulang URL, dan kami menggunakan aturan penulisan ulang yang benar di file konfigurasi. Ini karena modul penulisan ulang tidak termasuk dalam apache. Karena modul mod_rewrite tidak diaktifkan secara default di server, maka untuk menggunakan rewrite, Anda harus mengaktifkan mode_rewrite secara manual. Dalam artikel saya "Aktifkan modul mod_rewrite untuk Apache di Debian/Ubuntu", saya akan menunjukkan kepada Anda bagaimana saya bisa melakukannya.

1. Mengaktifkan modul mod_rewrite di Apache2

Untuk melakukan ini, saya menggunakan perintah "a2enmod" untuk mengaktifkan modul apa pun di server web Apache 2. Jadi, gunakan perintah berikut untuk mengaktifkan modul mod_rewrite untuk apache:

$ sudo a2enmod menulis ulang

2. Aktifkan ReWrite di virtual host

Setelah mengaktifkan modul ReWrite untuk Apache, Anda perlu menambahkan "AllowOverride All" di file konfigurasi Anda untuk virtual host. Pengaturan ini juga dapat diaktifkan secara global dengan mengedit file konfigurasi apache utama:

Opsi Indeks FollowSymLinks AllowOverride All

3. Mulai ulang konfigurasi Apache2

Setelah mengaktifkan modul mod_rewrite untuk Apache, Anda perlu me-restart server Apache2:

# layanan restart apache2

Topik "Aktifkan mod_rewrite untuk Apache di Debian/Ubuntu" telah selesai.

Pikirkan kembali kunjungan terakhir Anda ke toko online. Saat Anda menemukan produk yang tepat, Anda mungkin melihat sesuatu seperti URL ini:

Ini bukan karena pengembang situs ini menghabiskan banyak waktu untuk menyiapkan direktori terpisah untuk kategori produk yang berbeda, tetapi berkat modul praktis yang disebut mod_rewrite. Modul ini memungkinkan Anda membuat URL khusus dan disederhanakan. URL sebenarnya terlihat seperti ini:

http://www.buy-online.com/gp/itemB004RYVI0Q/ref=as_li_ss_tl?

Tutorial ini mencakup mengaktifkan modul ini, membuat dan menggunakan halaman .htaccess, dan menyiapkan penulisan ulang URL.

Persyaratan

Juga, Anda perlu menginstal apache terlebih dahulu. Untuk menginstal server web ini dengan cepat di Ubuntu, gunakan perintah:

sudo apt-get install apache2

1: Aktifkan mod_rewrite

Pertama, Anda perlu mengaktifkan mod_rewrite, ini sangat sederhana:

sudo a2enmod menulis ulang

Perintah ini akan mengaktifkan modul, atau menampilkan pesan "Module rewrite sudah diaktifkan" jika modul sudah diaktifkan.

2: Apa itu .htaccess?

Setelah modul diaktifkan, Anda dapat mengatur penulisan ulang tautan dengan membuat file .htaccess di direktori situs.

File .htaccess adalah cara untuk menyempurnakan situs tanpa harus mengubah file konfigurasi server. Titik yang memulai nama file berarti file tersebut disembunyikan.

Selain itu, lokasi file .htaccess penting, karena pengaturan file ini akan memengaruhi semua file dan subdirektori dari direktori tempatnya berada.

Anda dapat membuat file .htaccess menggunakan editor teks, lalu mengunggahnya ke situs menggunakan klien ftp.

catatan: file harus diberi nama persis .htaccess; Nama file tidak boleh berisi ekstensi tambahan.

Alternatifnya, Anda dapat membuat file .htaccess melalui terminal menggunakan perintah ini, menggantikan example.com dengan nama domain situs.

Termasuk file .htaccess

Untuk mengizinkan file .htaccess mengesampingkan pengaturan situs default, buka file konfigurasi.

Catatan: Ini akan membutuhkan hak istimewa sudo yang diperpanjang.

sudo nano /etc/apache2/sites-available/default

Di file ini, temukan bagian berikut dan ubah nilai baris AllowOverride (ganti Tidak Ada dengan Semua). Hasilnya, bagian tersebut akan terlihat seperti ini:


Opsi Indeks FollowSymLinks MultiViews
IzinkanGanti Semua
perintah mengizinkan, menolak
izinkan dari semua

Setelah menyimpan perubahan dan menutup file, restart server apache. File .htacess sekarang tersedia untuk semua situs di server.

layanan sudo restart apache2

Sekarang Anda siap untuk menulis ulang URL situs.

Langkah 3: Menulis ulang URL

Seluruh operasi penulisan ulang URL dilakukan di file .htaccess. Secara umum, semua perintah penulisan ulang URL mengikuti pola yang sama:

Pergantian Pola Aturan Tulis Ulang

Opsi yang digunakan dalam perintah ini:

  • RewriteRule: Ini adalah bagian di mana Anda dapat mengatur arahan yang diperlukan.
  • Pola: Bagian ini untuk menginterpretasikan URL yang diinginkan menggunakan ekspresi reguler. Panduan ini tidak mencakup ekspresi reguler; beberapa informasi berguna tentang ini dapat ditemukan di situs Apache.
  • Substitusi: Menampilkan URL halaman yang sebenarnya. Tautan seperti itu sulit diingat karena terdiri dari parameter PHP atau urutan angka yang panjang, misalnya: www.bestshop.com/gadgets.php?innovation=laptops
  • Bendera Opsional: Bendera adalah tag di akhir direktif RewriteRule yang dapat mengubah perilaku ekspresi. Beberapa bendera umum adalah: [F] melarang URL, mengabaikan huruf kapital, atau mengontrol kode pengalihan yang digunakan, [L] mengatakan ini adalah aturan terakhir dalam rangkaian.

Contoh Penulisan Ulang URL

Contoh 1: buka halaman A - buka halaman B

Ini adalah contoh paling sederhana dari penulisan ulang URL: pengunjung situs memasukkan satu URL ke browser tetapi dialihkan ke yang lain. Untuk mengonfigurasi perilaku ini, ikuti petunjuk di bagian ini.

Untuk memulai, buat dua halaman situs web; misalnya, yang pertama tentang apel (apel.html) dan yang kedua tentang jeruk (jeruk.html).

Salin kode ini:



apel


Halaman ini berisi tentang Apel



Kemudian buat halaman kedua (dalam hal ini, halaman jeruk). Untuk melakukan ini, cukup ganti Apel di blok kode ini dengan Jeruk.

Kemudian buka file .htaccess:

sudo nano /var/www/example.com/.htaccess

Masukkan perintah penulisan ulang URL berikut ke dalamnya:

Mesin Tulis Ulang aktif
RewriteRule ^oranges.html$ apples.html

Simpan dan tutup file.

Kemudian kunjungi halaman /oranges.html, disana akan berisi informasi dari halaman /apple.html.

Mari kita lihat lebih dekat perintah di atas:

  • ^oranges.html: Menentukan bagaimana halaman yang diinginkan dimulai. Sebuah caret (^) menunjukkan awal baris. Dengan kata lain, jika halaman yang URL-nya perlu ditulis ulang dimulai secara berbeda (misalnya, bukan oranges.html, tetapi oranges_1.html), itu tidak akan cocok dengan aturan penulisan ulang dan tidak akan dialihkan ke halaman birds.html.
  • $: Tanda dolar ditempatkan di akhir URL. Sekali lagi, jika string berakhir berbeda (misalnya, berisi karakter apa pun setelah karakter terakhir yang dinyatakan), halaman web tidak akan dikenali oleh aturan penulisan ulang.
  • apples.html: Halaman ini adalah tempat browser mengirimkan lalu lintas.

Contoh 2: Parameter sebagai subdirektori di URL

Periksa url:

http://example.com/results.php?products=apple

Ini akan jauh lebih jelas diterjemahkan sebagai:

http://example.com/products/apple

Untuk melakukannya, tambahkan baris berikut ke .htaccess:

Mesin Tulis Ulang aktif
RewriteRule ^products/(+)/?$results.php?products=$1

Baris-baris ini terdiri dari opsi-opsi berikut:

  • ^produk: Dalam hal ini, URL harus diawali dengan kata produk yang akan dialihkan (perhatikan bahwa ini hanya berlaku untuk teks setelah domain). Sekali lagi, jika URL diawali dengan berbeda, aturan tidak akan berlaku.
  • (+): Teks dalam tanda kurung ini menunjukkan bahwa URL dapat berupa karakter apa saja. Tanda tambah menunjukkan bahwa satu atau lebih karakter dapat berada di dalam tanda kurung.
  • /?$: Tanda dolar menandai akhir baris. Tanda tanya memungkinkan Anda memberi garis miring di akhir baris (walaupun ini tidak wajib).
  • : Ini adalah bendera di akhir frasa, yang menunjukkan bahwa aturan harus mengabaikan huruf besar-kecil untuk semua karakter.

Contoh 3: Menyiapkan tautan bersih

Fitur ini sangat diperlukan jika URL situs terlalu panjang atau rumit.

Sebagai contoh, ambil URL berikut:

http://example.com/results.php?products=produce&type=fruit&species=apple

http://example.com/produce/fruit/apple

Untuk melakukan ini, tambahkan baris berikut ke .htaccess (omong-omong, .htaccess dapat berisi bagian yang tidak terbatas jumlahnya):

Mesin Tulis Ulang aktif
RewriteRule ^(meat|produce|dairy)/([^/.]+)/([^/.]+)$ results.php?products=$1&type=$2&species=$3

Mari kita lihat lebih dekat kode ini:

  • Tanda sisipan (karakter ^) menunjukkan awal ekspresi.
  • (daging|produksi|susu): Untuk membatasi opsi yang dapat ditampilkan, sertakan hanya nilai yang diizinkan dalam tanda kurung (daging, hasil bumi, dan produk susu dalam kasus ini). Jika URL berisi parameter tanpa tanda kurung, penulisan ulang akan gagal.
  • ([^/.]+) menunjukkan bahwa semuanya kecuali karakter setelah tanda sisipan (dalam hal ini, garis miring dan titik) dapat dipotong.
  • results.php?products=$1&type=$2&species=$3: setiap nilai dalam tanda kurung akan diekstraksi dan kemudian dimasukkan ke dalam URL yang lebih panjang di bagian substitusi. $1 untuk tanda kurung pertama, $2 untuk tanda kurung kedua, $3 untuk tanda kurung ketiga.

Kelanjutan artikel dapat ditemukan.

Tag: ,