Saya ingin melakukan penulisan ulang URL (Mengapa? Lihat pertanyaan ini .) Sehingga alih-alih pengguna yang melihat alamat suka
labouseur.com/course-compilers.html
mereka malah bisa melihat dan menggunakan secara sederhana
labouseur.com/course-compilers
(Bahkan lebih baik, mungkin saya harus merestrukturisasi itu sehingga kursus / kompiler.)
Saya menggunakan layanan hosting bersama berbasis Linux untuk situs web saya, jadi saya tidak memiliki kontrol administratif server, tetapi saya memiliki kontrol atas .htaccess. Referensi yang saya baca online tampak kurang jelas bagi saya, jadi saya mencari sedikit kejelasan dan saran di sini.
url-rewriting
htaccess
Alan
sumber
sumber
Jawaban:
Anda sebenarnya dapat menghapus .html dari file di server Anda dan mengatur pengaturan di htaccess sehingga mereka dapat disajikan sebagai file html, tetapi itu mungkin bukan yang Anda cari.
Melakukan hal ini :
sumber
Pertama, pastikan apache memiliki modul dan diizinkan di file .htacces, lalu tambahkan:
Contoh Anda akan membutuhkan
Untuk struktur direktori satu tingkat dan
Untuk struktur multi-level.
Tapi hati-hati
Jika Anda memiliki struktur
Aturan penulisan ulang dalam
.htaccess
file anak akan relatif terhadap folder induknya dan Anda dapat masuk ke beberapa situasi loop penulisan ulang yang berantakan . Pastikan Anda menggunakanRewriteCond
untuk menghentikannya jika Anda bisa!sumber
Sebagai tambahan untuk jawaban di atas, seseorang dapat menggunakan
([\w-]+)
Mengizinkan huruf, digit dengan tanda hubung (-).(.*)
akan menulis ulang setiap permintaan, yang dapat mengabaikan aturan berikut lainnya yang menyebabkan kesalahan server internal dalam mengakses.sumber
RewriteRule
Pola Anda merupakan peningkatan dari jawaban yang diterima untuk contoh spesifik yang diberikan dalam pertanyaan, namun, akan gagal untuk mencocokkan kasus yang lebih umum ketika ada lebih dari satu segmen jalan, misalnya./path/to/course-compilers
. SertakanL
bendera untuk mengurangi dampak pada aturan berikut. Walaupun(.*)
polanya tidak umum, tidak mungkin menyebabkan masalah serius, karena kondisi yang memeriksa file ada.Anda tidak harus menggunakan file .htaccess untuk melakukannya. Cukup susun file Anda ke direktori, dan alih-alih menggunakan "labouseur.com/course-compilers.html", cukup beri nama file index.html dan masukkan ke dalam direktori yang disebut "course-compiler". Kemudian ketika Anda menunjuk ke direktori itu, indeks disajikan secara default tetapi tidak akan ditampilkan di URL. Jadi Anda bisa menulis tautan Anda sebagai "labourseur.com/course-compiler" dan semuanya akan baik-baik saja.
Tidak diperlukan .htaccess.
sumber