Apa itu File .htaccess dan Bagaimana Cara Menggunakannya di WordPress?

Diterbitkan: 2020-10-27

Anda mungkin pernah mendengar tentang file .htaccess sebelumnya tetapi tidak tahu apa itu atau apa fungsinya. Pada artikel ini kita akan menyoroti file .htaccess dan mengungkap misterinya sekali dan untuk selamanya. Pada akhir artikel ini Anda akan memahami bahwa file .htaccess adalah, apa yang dilakukan file .htaccess dan bagaimana Anda dapat menggunakan file .htaccess untuk mencapai tugas tertentu. Mari kita pergi!

Apa itu File .htaccess?

Mari kita mulai dengan melihat apa sebenarnya file .htaccess itu. 'htaccess' adalah singkatan dari 'akses hypertext'. Nama ini menjelaskan untuk apa file tersebut digunakan saat pertama kali dikembangkan. Singkatnya, itu digunakan untuk mengontrol akses pengguna ke file dan direktori tertentu. Banyak hal telah berubah sejak .htaccess pertama kali muncul dan sekarang digunakan dalam beberapa cara berbeda di WordPress yang akan kita lihat secara detail.

.htaccess adalah file inti WordPress konfigurasi yang digunakan untuk mengesampingkan pengaturan tertentu dari server Web Apache (Apache adalah perangkat lunak yang biasa digunakan di server web) atau untuk mengimplementasikan berbagai fungsi lain yang memengaruhi cara kerja situs web Anda. Itu disertakan dalam semua instalasi WordPress tepat setelah Anda mengaktifkan permalinks dan biasanya terletak di direktori root instalasi. Anda dapat melihat atau mengeditnya dengan mengakses file instalasi melalui klien FTP seperti FileZilla atau WinSCP.

Catatan: Pastikan preferensi Klien FTP Anda dimodifikasi sehingga file tersembunyi ditampilkan.

Secara default, konten file .htaccess dari situs WordPress, setelah permalink diaktifkan, terlihat seperti ini:

 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

Jika Anda belum mengetahuinya, "#" di awal baris adalah komentar. # BEGIN WordPress dan # END WordPress digunakan agar konten tetap teratur ketika lebih banyak aturan diterapkan nanti oleh plugin atau oleh Anda sendiri. Setiap penambahan di masa mendatang ke file .htaccess harus ditempatkan di luar baris ini.

File .htaccess sebagian besar digunakan di WordPress untuk mengontrol permalink di situs web Anda. Ini juga dapat digunakan sebagai alat yang ampuh untuk berbagai tugas lain seperti mengontrol akses ke file tertentu, meningkatkan keamanan dan kinerja, mengirim header khusus dan banyak lagi.

Catatan: Setiap perubahan yang dibuat pada file .htaccess situs web Anda harus dilakukan dengan hati-hati. Bahkan kesalahan ketik sederhana dalam file ini dapat menyebabkan situs web Anda mogok. Karena itu, jika Anda tidak yakin tentang perubahan apa pun yang Anda buat, idealnya Anda harus mengujinya di server pementasan sebelum kemudian mendaftar ke situs web langsung Anda.

Hal yang Dapat Anda Lakukan Dengan File .htaccess Anda

Jadi mari kita lihat bagaimana Anda dapat lebih mengontrol situs web Anda dengan bantuan file .htaccess.

Mengarahkan Antara 'www' dan 'non-www'

Penggunaan umum dari file .htaccess adalah mengatur pengalihan permanen dari "domain telanjang" Anda (versi non-www) ke versi www atau sebaliknya.

Sebelum melanjutkan, pastikan bahwa kedua domain diatur dalam DNS Anda untuk diselesaikan ke alamat IP server yang benar.

Juga, di area admin WordPress Anda, periksa apakah domain telanjang disetel sebagai primer.

URL situs pengaturan

Anda dapat mengarahkan domain www ke yang telanjang dengan menambahkan kode berikut ke dalam file .htaccess, di bawah konten default.

 RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.mycompanyname\.com [NC] RewriteRule ^(.*)$ http://mycompanyname.com/$1 [L,R=301]

Untuk mencapai kebalikannya (jika www ditetapkan sebagai primer) dan mengalihkan dari domain 'non-www' ke 'www', Anda harus memasukkan kode ini:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^mycompanyname.com [NC] RewriteRule ^(.*)$ http://www.mycompanyname.com/$1 [R=301,L]

Jika Anda tidak terbiasa dengan ekspresi reguler yang digunakan dalam kode dan Anda ingin memahami lebih lanjut tentang sintaks, silakan luangkan waktu Anda dan baca lebih lanjut tentang REGEX. HT Access Cheat Sheet adalah alat lain yang sangat berguna

Pengalihan 301 (pengalihan permanen)

A 301 Redirect memberi tahu mesin telusur bahwa URL telah diganti secara permanen dengan yang lain dan juga mengarahkan pengguna ke pengunjung tersebut ke url baru (benar!). .

Berikut adalah potongan kode yang ketika ditempatkan di file .htaccess berhasil:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^mycompanyname.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.mycompanyname.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]

Pada contoh di atas, kami telah mengalihkan pengguna dari situs web 'namaperusahaansaya.com ke 'contoh.com'. Tentu saja, Anda ingin mengganti bagian ini dengan url Anda sendiri.

Ini juga akan berlaku untuk semua jalur di bawah domain. Yang berarti bahwa misalnya mycompanyname.com/new.html akan dialihkan ke example.com/new.html

Pengalihan 302 (pengalihan sementara)

Saat konten dipindahkan sementara ke lokasi lain, pengalihan 302 digunakan. Sintaksnya sama seperti pada 301. Misalnya:

 Redirect 302 /old.html http//www.mycompanyname.com/new.html

Dari perspektif praktis, hasilnya persis sama tetapi dengan satu perbedaan penting. Dengan pengalihan 301, mesin pencari diberi tahu bahwa halaman tersebut tidak lagi aktif dan dengan demikian, akan mendorong mesin pencari untuk menghapus halaman ini dari hasil pencarian. Dalam kasus pengalihan 302, URL asli yang masih akan dirayapi oleh Google akan terus diindeks alih-alih URL baru. Dengan demikian, ini adalah solusi ideal untuk pengalihan ketika Anda hanya ingin mengalihkan ke konten alternatif untuk sementara.

Paksa ke HTTPS

Mengamankan situs web Anda dengan sertifikat SSL sangat penting untuk dilakukan saat ini. Situs web yang tidak melakukan ini sekarang akan menampilkan peringatan di bilah browser yang dapat merusak kepercayaan pada situs web Anda. Selain itu, Google sebenarnya menghukum situs web yang tidak mengirimkan konten melalui HTTPS dan karena itu peringkat pencarian Anda dapat terganggu.

Bahkan ketika Anda memasang sertifikat SSL di situs web Anda, Anda masih dapat menemukan bahwa pengguna dapat mengunjungi versi non-HTTPS situs Anda. Jika mereka melakukan ini, mereka akan tetap menerima peringatan di browser mereka meskipun Anda telah menginstal sertifikat SSL. Untuk menghentikan hal ini terjadi, Anda perlu memaksa semua lalu lintas dari versi HTTP yang tidak aman ke versi HTTPS yang aman. Ini sangat mudah dilakukan menggunakan file .htaccess Anda dengan menambahkan kode berikut:

 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Blokir Alamat IP

Jika Anda menerima lalu lintas spam atau situs web Anda mengalami upaya penyalahgunaan/peretasan dari alamat IP tertentu, Anda dapat mengambil tindakan menggunakan file .htaccess dengan memblokir lalu lintas dari alamat IP tersebut menggunakan kode berikut di file .htaccess Anda.

 Deny from 94.66.58.135

Jika Anda ingin mempelajari cara memblokir alamat IP dengan cara lain, silakan baca panduan ini.

Cegah Tautan Panas Gambar

Tautan panas gambar adalah tempat seseorang menyematkan gambar di situs web Anda ke situs mereka sendiri. Ini bisa menjadi masalah (dan bukan hanya dari perspektif Hak Cipta) karena itu berarti server Anda berpotensi bekerja lembur untuk menayangkan gambar di situs web orang lain. Anda dapat menghentikan ini dengan menggunakan file .htaccess untuk memblokir seseorang agar tidak menyematkan gambar Anda di situs web mereka dengan kode berikut:

 RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mycompanyname.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [F]

Jangan lupa untuk mengganti 'mycompanyname.com' dengan URL website Anda!

Kode ini memblokir SEMUA situs web dari hotlinking gambar di situs Anda. Karena Anda tidak ingin menghentikan mesin pencari yang menautkan gambar, Anda harus memasukkannya ke daftar putih secara manual. Bagian dari kode yang mencapai ini adalah bagian ini di sini:

 RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mycompanyname.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]

Anda tentu saja dapat menyertakan situs web lain yang ingin Anda masukkan ke daftar putih. Terakhir, baris terakhir dalam kode ( RewriteRule .(jpg|jpeg|png|gif)$ - [F] ) menentukan jenis media apa yang diblokir.

Lindungi Plugin dan File Tema

File plugin dan tema PHP terkadang bisa menjadi target peretas yang mencoba dan menyuntikkan kode berbahaya ke dalamnya. Anda dapat menggunakan file .htaccess untuk membantu mencegah akses ke file ini dengan menggunakan kode berikut:

 RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/ RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L] RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/ RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

Lindungi File Inti WordPress

Sangat disarankan agar beberapa file inti WordPress dibuat tidak dapat diakses oleh pengguna non-admin. Ini adalah sesuatu yang ditangani oleh sebagian besar penyedia hosting untuk Anda, tetapi tidak selalu demikian. Jika Anda ingin mencegah akses ke file WordPress yang sensitif, Anda dapat menggunakan kode berikut di file .htaccess Anda:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>

Cegah Bot Buruk Merayap Situs Web Anda

Bot pada dasarnya adalah skrip web otomatis yang dapat memindai jutaan situs web setiap hari. Google menggunakan bot untuk memindai situs web dan mengambil data dari pemindaian ini untuk memperbarui basis data pencarian besar-besaran mereka. Semoga bot Google sama sekali tidak berbahaya! Ada bot lain yang mungkin tidak Anda inginkan untuk memindai situs web Anda. Beberapa bot 'buruk' ini mungkin tidak melakukan apa-apa selain menghabiskan bandwidth server yang tidak perlu, sementara yang lain mungkin secara aktif mencari kelemahan yang dapat dieksploitasi di situs web Anda. File .htaccess Anda dapat digunakan untuk memblokir bot 'buruk' ini.

Hal pertama yang harus diketahui adalah bot apa yang ingin Anda blokir? Anda mungkin sudah tahu tetapi jika tidak, Anda bisa melihat daftar terbaru bot yang masuk daftar hitam yang dianggap mencurigakan. Ketika Anda memiliki daftar Anda, Anda dapat menambahkannya ke file .htaccess Anda seperti ini:

 #Block bad bods requests SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC]

Setelah menyimpan perubahan Anda, bot apa pun dalam daftar yang sekarang mengunjungi situs web Anda akan mendapatkan halaman 403 Terlarang.

Lindungi wp-config.php

Secara umum disarankan agar Anda membatasi akses ke file wp-config.php karena berisi kredensial akses database.

Untuk melakukan ini melalui .htaccess cukup salin dan tempel baris berikut ke file .htaccess Anda:

 <files wp-config.php>order allow,denydeny from all</files>

Nonaktifkan eksekusi PHP

Cara yang sangat efisien untuk dilindungi dari upaya peretasan adalah dengan mencegah eksekusi PHP di direktori tertentu yang tidak diperlukan. Misalnya /wp-includes/ dan /wp-content/uploads/ adalah lokasi populer yang digunakan oleh peretas untuk menempatkan kode yang memungkinkan akses tidak sah ke server (dikenal sebagai file backdoor). Menonaktifkan eksekusi PHP di direktori ini tidak akan menghapus file-file itu tetapi malah menghentikan mereka mengeksekusi kodenya. Untuk melakukannya, tambahkan kode berikut ke file .htaccess Anda.

 <Files *.php>deny from all</Files>

Anda juga akan menemukan bahwa banyak penyedia hosting, termasuk Pressidium, telah secara default menonaktifkan eksekusi PHP di direktori ini untuk meningkatkan tingkat keamanan mereka bagi pelanggan mereka.

Nonaktifkan Akses XML-RPC

Ini adalah masalah umum yang sering terlihat oleh tim dukungan di perusahaan hosting di mana instalasi WordPress menerima ribuan permintaan "POST /xmlrpc.php HTTP/1.1" yang sering dikaitkan dengan serangan dari satu atau beberapa alamat IP. Salah satu solusi untuk ini adalah menonaktifkan XML-RPC.

Untuk menonaktifkan XML-RPC untuk situs web Anda, tambahkan baris kode ini ke file .htaccess oyur:

 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all </Files> # END protect xmlrpc.php

Perlu dicatat bahwa xmlrpc.php diperlukan jika Anda memperbarui konten menggunakan aplikasi seluler atau koneksi jarak jauh. Jadi, jika Anda mempertimbangkan untuk menonaktifkannya secara permanen, pastikan itu tidak diperlukan untuk pekerjaan Anda.

Paksa File untuk Diunduh

Ini bisa sangat menjengkelkan sebagai pengguna situs web, ketika Anda ingin mengunduh file dari situs web (misalnya PDF), file tersebut malah terbuka di jendela browser. Jika Anda memiliki file di situs web Anda yang disediakan sebagai item yang dapat diunduh untuk pengguna Anda, maka Anda dapat mengedit file .htaccess Anda dan menambahkan baris kode yang dapat memaksa jenis file tertentu untuk diunduh dan tidak ditampilkan langsung dari dalam browser. Anda akan melihat kode di bawah ini bersama dengan beberapa contoh jenis file yang Anda ingin agar dapat diunduh langsung oleh pengguna.

 AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4

Kirim Header HTTP Kustom

Pengguna tingkat lanjut mungkin ingin dapat mengirim header HTTP pelanggan dengan memanfaatkan arahan Header Apache. Untuk melakukannya, tambahkan kode berikut ke file .htaccess Anda.

 Header add my-custom-header "my custom header value"

Contoh di atas akan memberi tahu Apache untuk menambahkan header bernama "my-custom-header" untuk setiap permintaan ke server. Jika kami menerapkan pembaruan ini dan kemudian memeriksa tab jaringan kami di alat browser kami, kami dapat mengonfirmasi responsnya seperti yang ditunjukkan di bawah ini.

tajuk khusus saya

Teknik ini sangat umum untuk menambahkan cache dan header keamanan atau menambahkan set karakter bahasa. Lihatlah artikel ini untuk beberapa kegunaan populer. Anda juga dapat menemukan daftar tajuk terperinci untuk Anda coba dalam daftar ini.

Kesimpulan

Semoga artikel ini memberi Anda beberapa wawasan tentang hal-hal yang dapat dicapai dengan file .htaccess. Tentu, banyak dari hal ini dapat dicapai dengan menggunakan plugin tetapi selalu membantu untuk memahami apa yang sebenarnya terjadi 'di bawah tenda' terutama jika sebuah plugin gagal beroperasi seperti yang Anda harapkan. Menguasai cara mengedit file .htaccess daripada mengandalkan plugin juga membantu meningkatkan tingkat keahlian WordPress Anda… dan itu selalu merupakan hal yang baik!