Pernahkah Anda merasa perlu mengubah konfigurasi situs web Anda yang berjalan di server web Apache tanpa memiliki akses root ke file konfigurasi server (httpd.conf
)? Inilah yang .htaccess
file untuk.
.htaccess
file menyediakan cara untuk membuat perubahan konfigurasi ke situs web Anda berdasarkan per-direktori. File dibuat di direktori tertentu yang berisi satu atau lebih arahan konfigurasi yang diterapkan ke direktori tersebut dan subdirektorinya. Di shared hosting, Anda harus menggunakan .htaccess
file untuk membuat perubahan konfigurasi pada server Anda.
[ Anda mungkin juga menikmati: 6 keterampilan sysadmin yang dibutuhkan pengembang web ]
Penggunaan umum file .htaccess
.htaccess
file memiliki beberapa kasus penggunaan. Contoh paling umum meliputi:
- Pengalihan untuk URL tertentu
- Muat halaman kesalahan khusus, seperti 404 halaman
- Paksa situs web Anda ke HTTPS, bukan HTTP
- Izinkan atau tolak akses alamat IP tertentu ke situs web Anda
- Lindungi sandi direktori tertentu di server Anda
Kapan tidak menggunakan .htaccess?
.htaccess
File ini biasanya digunakan ketika Anda tidak memiliki akses ke file konfigurasi server utama httpd.conf
atau konfigurasi virtual host, yang hanya terjadi jika Anda telah membeli shared hosting. Anda dapat mencapai semua kasus penggunaan yang disebutkan di atas dengan mengedit file konfigurasi server utama (mis., httpd.conf
) atau file konfigurasi host virtual, jadi Anda tidak boleh menggunakan .htaccess
ketika Anda memiliki akses ke file-file itu. Konfigurasi apa pun yang perlu Anda masukkan ke dalam .htaccess
file dapat secara efektif ditambahkan dalam
Alasan untuk menghindari penggunaan .htaccess
Ada dua alasan untuk menghindari penggunaan .htaccess
file. Mari kita lihat lebih dekat.
Pertama :Performa - Saat AllowOverride diatur untuk mengizinkan penggunaan .htaccess
file, httpd
akan mencari .htaccess
file di setiap direktori mulai dari direktori induk. Ini akan menyebabkan dampak kinerja, apakah Anda menggunakannya atau tidak. .htaccess
file dimuat setiap kali dokumen diminta dari direktori.
Untuk memiliki tampilan penuh dari arahan yang harus diterapkan, httpd
akan selalu mencari .htaccess
file dimulai dengan direktori induk hingga mencapai sub-direktori target. Jika file diminta dari direktori /public_html/test_web/content
, httpd
harus mencari file berikut:
/.htaccess
/public_html/.htaccess
/public_html/test_web/.htaccess
/public_html/test_web/content/.htaccess
Jadi, empat akses sistem file dilakukan untuk setiap akses file dari konten sub-direktori meskipun file tidak ada.
Kedua :Keamanan - memberikan izin kepada pengguna untuk membuat perubahan di .htaccess
file memberi mereka kontrol penuh atas konfigurasi server situs web atau host virtual tertentu. Setiap arahan di .htaccess
file memiliki efek yang sama seperti yang ditempatkan di httpd
file konfigurasi itu sendiri, dan perubahan yang dilakukan pada file ini langsung langsung tanpa perlu me-restart server. Hal ini dapat menjadi berisiko dalam hal keamanan server web dan situs web.
Aktifkan file .htaccess
Untuk mengaktifkan .htaccess
file, Anda harus memiliki hak sudo/root di server.
Buka httpd
file konfigurasi situs web Anda:
/etc/httpd/conf/test.conf
Anda harus menambahkan arahan konfigurasi berikut di file host virtual server untuk mengizinkan .htaccess
file di DocumentRoot direktori. Jika baris berikut tidak ditambahkan, .htaccess
file tidak akan berfungsi:
</VirtualHost>
<Directory /var/www/test.com/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Dalam kasus shared hosting, ini sudah diperbolehkan oleh penyedia layanan hosting. Yang perlu Anda lakukan adalah membuat .htaccess
file di public_html
direktori tempat penyedia layanan telah memberi Anda akses dan ke mana Anda akan mengunggah file situs web Anda.
URL Pengalihan
Jika sasaran Anda hanyalah mengalihkan satu URL ke URL lain, Pengalihan direktif adalah opsi terbaik yang dapat Anda gunakan. Setiap kali permintaan datang dari klien di URL lama, permintaan akan diteruskan ke URL baru di lokasi baru.
Jika Anda ingin melakukan pengalihan lengkap ke domain lain, Anda dapat mengatur hal berikut:
# Redirect to a different domain
Redirect 301 "/service" "https://newdomain.com/service"
Jika Anda hanya ingin mengarahkan ulang URL lama ke URL baru di host yang sama:
# Redirect to a URL on the same domain or host
Redirect 301 "/old_url.html" "/new_url.html"
Load a custom 404 Error page
Untuk pengalaman pengguna yang lebih baik, muat halaman kesalahan khusus saat salah satu tautan di situs web Anda mengarah ke lokasi yang salah atau dokumen telah dihapus.
Untuk membuat halaman 404 khusus, cukup buat halaman web yang akan berfungsi sebagai halaman 404 dan kemudian tambahkan kode berikut ke .htaccess
Anda berkas:
ErrorDocument 404 /error/pagenotfound.html
Anda harus mengubah /error/pagenotfound.html
ke lokasi halaman 404 Anda.
Paksa penggunaan HTTPS alih-alih HTTP untuk situs web Anda
Jika Anda ingin memaksa situs web Anda menggunakan HTTPS, Anda perlu menggunakan RewriteEngine modul di .htaccess
mengajukan. Pertama-tama, Anda harus mengaktifkan RewriteEngine modul di .htaccess
file dan kemudian tentukan kondisi yang ingin Anda periksa. Jika kondisi tersebut terpenuhi, maka Anda menerapkan aturan pada kondisi tersebut.
Cuplikan kode berikut menulis ulang semua permintaan ke HTTPS:
# Turn on the rewrite engine
RewriteEngine On
# Force HTTPS and WWW
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.test-website.com/$1 [R=301,L]
Mari kita lihat setiap barisnya.
Mesin Tulis Ulang aktif menyalakan RewriteEngine modul. Ini diperlukan; jika tidak, ketentuan dan aturan tidak akan berfungsi.
Kondisi pertama memeriksa apakah www
dimasukkan. [ATAU, NC] singkatan dari tidak ada kasus , yang berarti meskipun URL yang dimasukkan memiliki campuran huruf besar atau kecil.
Selanjutnya, memeriksa apakah protokol HTTPS sudah dimasukkan oleh pengguna. Diskon%{https} berarti protokol HTTPS tidak digunakan.
Saat RewriteCond puas, kami menggunakan RewriteRule untuk mengarahkan ulang URL ke HTTPS. Perhatikan bahwa dalam kasus ini, semua URL akan dialihkan ke HTTPS setiap kali ada permintaan.
[ Panduan gratis dari Red Hat:5 langkah untuk mengotomatisasi bisnis Anda. ]
Menutup
Pemilik situs web sering menggunakan .htaccess
file untuk mengontrol perilaku situs web mereka. Dalam artikel ini, kami telah membahas dasar-dasar .htaccess
file dan beberapa kasus penggunaan umum di sebagian besar situs web.