Tidak dapat menemukan file JavaScript dan CSS Anda adalah masalah sisi klien / browser yang terkait dengan jalur URL Anda, itu bukan sesuatu yang harus diperbaiki .htaccess(setidaknya tidak dalam kasus ini) - meskipun itu karena Anda mengubah ini Jalur URL (di .htaccess) tempat Anda mengalami masalah ini.
Seperti yang disarankan @closetnoc dalam komentar, masalah ini disebabkan oleh penggunaan URL relatif di HTML Anda. Relatif dengan apa? Ingat, itu adalah agen-pengguna / browser yang menyelesaikan URL relatif di HTML Anda, bukan server. Jadi, Anda perlu memperbaiki URL Anda; tidak .htaccess.
Misalnya, jika Anda mereferensikan file CSS Anda dengan URL relatif dari formulir href="styles.css"(catatan, tanpa awalan garis miring) dan Anda saat ini di URL example.com/view.php?id=15maka browser secara alami akan menyelesaikan URL dan permintaan CSS Anda example.com/styles.css(di root dokumen). Namun, jika Anda saat ini berada di URL example.com/watch/15(efektif dalam /watch"subdirektori" [* 1] ) maka browser akan menyelesaikan URL CSS relatif Anda relatif ke /watchsubdirektori, bukan pada root dokumen, sehingga Anda berakhir dengan absolut / terselesaikan URL formulir example.com/watch/styles.css.
( [* 1] Perhatikan bahwa "subdirektori" dalam konteks ini tidak harus berupa subdirektori fisik di server Anda - ini adalah "subdirektori" di jalur URL; segmen jalur tambahan. Namun browser tidak mengetahui perbedaannya. )
Hal yang sama berlaku jika Anda menggunakan URL relatif dalam dokumen kesalahan khusus Anda (didefinisikan dengan ErrorDocumentarahan di Apache). Dokumen kesalahan khusus berpotensi dipanggil pada URL apa pun, sehingga URL relatif apa pun ke sumber daya statis (CSS, gambar, JS, dll.) Akan relatif terhadap URL yang menyebabkan kesalahan, bukan relatif terhadap dokumen kesalahan itu sendiri (lokasi yang secara efektif disembunyikan dari agen-pengguna).
Jika Anda mengubah JavaScript dan URL CSS Anda menjadi root-relatif (dimulai dengan garis miring) atau bahkan absolut maka Anda tidak akan mendapatkan masalah ini. Ini akan menjadi metode yang disukai. Atau, Anda dapat menggunakan baseelemen ...
base tag / elemen
Atau Anda dapat memasukkan baseelemen di headbagian dokumen HTML Anda (meskipun ini bukan tanpa peringatan [* 2] ). Ini referensi URL absolut bahwa semua URL relatif relatif terhadap. Dengan kata lain, karena Anda mengharapkan URL relatif ini relatif terhadap akar dokumen lalu tambahkan berikut ini ke headbagian:
<base href="http://example.com/">
Sekarang, URL relatif seperti yang styles.cssdirujuk dalam dokumen di URL /watch/15akan meminta http://example.com/styles.css, bukan http://example.com/watch/styles.css.
[* 2] Namun, ada beberapa peringatan dengan menggunakanbaseelemen tersebut. Perhatian utama adalah bahwa setiapURL relatif yang ditujukan untuk menargetkandokumen saat ini sekarang akan menargetkan URL dasar. Ini dapat memengaruhi jangkar di laman sepertihref="#top"dan URL formulir,href="?sortby=date"dll. Dan jugaformelemen yang mengirim sendiri menggunakanactionatributkosong(mis.<form action="" ...). URL relatif ini yang menargetkan dokumen saat ini perlu dimodifikasi untuk memasukkan URL lengkap dari halaman saat ini (yang mungkin mengalahkan titik menggunakanbasetag sebagai solusi untuk memulai).
Referensi: