Cara bahwa aturan-aturan dapat bekerja satu menit dan kemudian tampaknya tidak ke berikutnya, bagaimana browser dan lainnya di-antara cache jaringan berinteraksi dengan aturan dan aturan pengujian sering membingungkan, menjengkelkan. Ketika saya merasa perlu untuk menekuk pikiran saya benar-benar keluar dari bentuk, saya dipusingkan dengan mod_rewrite!
Setelah semua ini, itu berhasil, dan sementara aku tidak berencana mengambil yang akhir minggu kecelakaan-kursus dalam waktu dekat, saya telah mengambil beberapa trik wee diriku sendiri, main-main dengan server web dan situs web, tempat ini. .
Rencana di sini adalah untuk hanya drop beberapa hal yang rapi, contoh, hal-hal yang telah terbukti berguna, dan bekerja pada berbagai setup server;. Ada semua Apache di LAN saya, saya tetap datang di tua htaccess file diisi dengan percobaan menulis ulang masa lalu yang baik bekerja, dan aku menambahkannya ke daftar saya, atau gagal total, dan saya terkejut bahwa lebih sering hari-hari ini, aku bisa melihat persis mengapa!
Sangat sedikit di sini adalah penemuan saya sendiri. Bahkan bit aku tahu diriku sudah didokumentasikan dengan baik, aku hanya tidak memahami dokumen, atau tidak bisa menemukan mereka. Kadang-kadang, hanya melihat hal yang sama dari sudut yang berbeda dapat membuat semua perbedaan, jadi mungkin ini menusuk sederhana di URL Menulis ulang mungkin bisa menggunakan beberapa. Saya sedang menulis itu untuk saya, tentu saja. tapi saya mendapatkan beberapa kredit untuk ini ..
# Waktu untuk mendapatkan dinamis, lihat ..
RewriteRule \ (.*). Htm $ 1.php
awal menulis ulang ..
Setiap kali Anda menggunakan mod_rewrite (bagian dari Apache yang melakukan semua keajaiban ini), Anda perlu melakukan ..
Anda hanya perlu melakukan ini sekali per berkas. htaccess:
Pilihan + FollowSymLinks
RewriteEngine on
.. Sebelum menulis ulang aturan. Catatan: + FollowSymLinks harus diaktifkan untuk setiap aturan untuk bekerja, ini adalah persyaratan keamanan mesin menulis ulang. Biasanya itu di root diaktifkan dan Anda tidak harus menambahkannya, tetapi tidak ada salahnya untuk melakukannya, dan saya akan masukkan ke dalam semua contoh pada halaman ini, hanya dalam kasus *.
Baris berikutnya hanya switch pada menulis ulang mesin untuk folder itu. jika direktif ini dalam file utama Anda. htaccess, maka mesin Rewrite secara teoritis diaktifkan untuk seluruh situs Anda, tetapi adalah bijaksana untuk selalu menambahkan garis bahwa sebelum Anda menulis pengalihan, di mana saja.
* Meskipun sangat tidak mungkin, tuan rumah Anda mungkin memiliki + FollowSymLinks diaktifkan pada tingkat akar, namun melarang Selain di htaccess;. Dalam hal ini, menambahkan + FollowSymLinks akan merusak setup Anda (mungkin kesalahan 500), sehingga hanya menghapusnya, dan Anda aturan harus bekerja dengan baik.
Penting:. Sementara beberapa dari petunjuk di halaman ini mungkin tampak terbelah ke dua baris di browser Anda, dalam file htaccess Anda, mereka harus ada sepenuhnya pada satu baris. Jika Anda drag-pilih dan menyalin arahan pada halaman ini, mereka harus menyisipkan baik-baik saja ke editor teks apapun.
sederhana menulis ulang
Sederhananya, Apache scan semua permintaan URL yang masuk, memeriksa pertandingan di file htaccess. Kami dan penulisan ulang URL yang cocok untuk apa pun yang kita tentukan. sesuatu seperti ini ..
semua permintaan untuk whatever.htm akan dikirim ke whatever.php:
Pilihan + FollowSymLinks
RewriteEngine on
RewriteRule ^(.*) \. Htm $ $ 1.php [NC]
Berguna bagi siapa saja memperbarui situs dari statis htm (Anda bisa menggunakan html, atau (.*), htm htm, dll..?.) Ke halaman php yang dinamis; permintaan ke halaman lama secara otomatis ditulis ulang untuk url baru kami. tidak ada pemberitahuan apa-apa, pengunjung dan mesin pencari dapat mengakses konten Anda baik cara. meninggalkan aturan di; sebagai bonus tambahan, ini memungkinkan kita untuk dengan mudah memisahkan kode php dan html struktur yang dimasukkan ke dalam dua file terpisah, ide bagus, membuat mengedit dan memperbarui mudah. Para [NC] bagian pada akhirnya berarti "Tidak Kasus", atau "case-insensitive", lebih pada switch, nanti.
Orang dapat link ke whatever.htm atau whatever.php, tetapi mereka selalu mendapatkan whatever.php di browser mereka, dan ini bekerja bahkan jika whatever.htm tidak ada! Tapi aku menyimpang ..
Seperti berdiri, itu agak rumit, orang masih akan memiliki whatever.htm di address bar browser mereka, dan masih akan terus bookmark lama Anda htm URL.. Search engine juga akan terus mengindeks link Anda sebagai. Htm, beberapa orang bahkan berpendapat bahwa melayani sampai konten yang sama dari dua tempat yang berbeda bisa Anda dikenakan sanksi oleh mesin pencari. Hal ini mungkin atau tidak mengganggu Anda, tetapi jika tidak, mod_rewrite dapat melakukan sihir lagi ..
ini akan melakukan "nyata" redirection eksternal:
Pilihan + FollowSymLinks
RewriteEngine on
RewriteRule ^(.+) \. Htm $ http://corz.org/ $ 1.php [R, NC]
Kali ini kita menginstruksikan mod_rewrite untuk melakukan menulis ulang eksternal yang tepat, alias, "redirection". Sekarang, bukan hanya latar belakang penulisan ulang on-the-fly, browser pengguna secara fisik diarahkan ke URI baru, dan whatever.php muncul di address bar browser mereka - mesin pencari dan entitas spidering lainnya akan secara otomatis memperbarui link mereka ke php. versi; semua orang menang. Anda dapat mengambil waktu Anda dengan memperbarui juga.
Catatan: jika Anda menggunakan [R] saja, standarnya untuk mengirim HTTP "MOVED SEMENTARA" redirection, alias, "302". Tapi Anda dapat mengirim kode-kode lain, seperti begitu ..
ini melakukan sama persis seperti contoh sebelumnya RewriteRule.
RewriteRule ^(.+) \. Htm $ http://corz.org/ $ 1.php [R = 302, NC]
Oke, saya mengirimkan kode yang sama persis, tapi saya tidak perlu. Untuk rincian dari 30 banyak kode * Respon Anda dapat mengirim, lihat di sini. Kebanyakan orang tampaknya ingin mengirim 301, alias, "DIPINDAHKAN PERMENENTLY".
Catatan: jika Anda menambahkan sebuah "L" bendera untuk campuran; berarti "Aturan terakhir", misalnya [R = 302, NC, L]; Apache akan menghentikan pengolahan aturan untuk permintaan ini pada saat itu, yang mungkin atau tidak mungkin apa yang Anda inginkan. Either way, ini berguna untuk mengetahui
{ 0 komentar... read them below or add one }
Posting Komentar