Cara Melakukan Redirect Menggunakan .htaccess
Last updated onCategory : Server dan security , Wordpress
Cara Melakukan Redirect Menggunakan .htaccess – Secara otomatis, sebuah website normalnya akan dapat diakses dengan menggunakan www atau tanpa www. Namun, karena mesin pencari seperti google tidak mengizinkan hal tersebut atau akan melakukan pinalti karena akan menyebabkan duplicate content maka Anda harus memilih salah satu URL saja, dengan www atau tanpa www. Pada artikel ini, kami akan membahas tentang cara melakukan redirect menggunakan .htaccess.
Untuk pembahasan tentang perbedaan dan keuntungan menggunakan www dan non-www pada pembahasan Perbedaan WWW dan non-WWW untuk SEO. Kami juga menyarankan agar Anda mengecek pembahasan kami tentang Cara Mengubah URL WordPress Menjadi WWW.
Pengertian htaccess
Htaccess adalah file tersembunyi dengan format teks yang berada di server atau cPanel yang fungsinya untuk mengontrol pengunjung ketika mengakses website. Htaccess juga dapat berguna untuk memblokir beberapa traffic atau mengizinkan orang tertentu untuk mengakses file di website Anda.
Untuk melihat file Htaccess maka Anda harus mengaktifkan fungsi Show Hidden Files (dotfiles) dari File Manager >> Settings dan berikan centang pada Show Hidden Files (dotfiles).
Apa yang dapat dilakukan dengan Htaccess?
Selain digunakan untuk membuat redirect, .htaccess memiliki banyak fungsi atau manfaat. Berikut adalah beberapa contoh atau fungsi yang dapat dilakukan melalui .htaccess:
- Melakukan Redirect URL – Seperti pada yang dibahas pada konten Redirect Menggunakan .htaccess
- Memproteksi folder atau direktori dengan password
- Melakukan custom halaman error seperti halaman 404 dan lain-lain
- Mengubah ekstensi URL seperti permalink pada WordPress – Seperti pada pembahasan kami pada Cara Mengubah URL WordPress menjadi SEO. Pada konten tersebut, kami menambahkan .html di akhir url
- Block dan allow atau izinkan beberapa IP tertentu untuk mengakses file atau website – Hal ini sama seperti pembahasan kami pada Aktifkan dan non-aktifkan xmlrpc.php WordPress di cPanel. Pada contoh tersebut kami mencontohkan akses file XMLRPC untuk IP tertentu
- Mengubah atau mengaktifkan fungsi dan nilai php.ini
- Dan lain-lain 🙂
Cara Membuat Htaccess
Htaccess dapat dibuat dengan sangat mudah. Untuk melakukannya, cukup login di file manager dan kemudian buatlah file dengan nama .htaccess.
Setelah itu, masukkan konfigurasi .htaccess yang ingin Anda tambahkan. Misalnya, dalam kasus ini kami akan menambahkan konfigurasi .htaccess standard atau default dari wordpress:
[pastacode lang=”php” manual=”%3CIfModule%20mod_rewrite.c%3E%0ARewriteEngine%20On%0ARewriteBase%20%2F%0ARewriteRule%20%5Eindex%5C.php%24%20-%20%5BL%5D%0ARewriteCond%20%25%7BREQUEST_FILENAME%7D%20!-f%0ARewriteCond%20%25%7BREQUEST_FILENAME%7D%20!-d%0ARewriteRule%20.%20%2Findex.php%20%5BL%5D%0A%3C%2FIfModule%3E%0A%0A%23%20END%20WordPress” message=”” highlight=”” provider=”manual”/]
note: karena file htaccess tersebut berada di public_html dan di set RewriteBase / yang artinya akan bekerja pada semua direktori di public_html
Mengapa Harus Melakukan Redirect
Redirect adalah hal yang sangat penting karena akan membantu mesin pencari mengenali url pada website Anda apakah masih valid atau tidak. Dengan melakukan redirect halaman atau url yang tidak valid/broken akan diarahkan ke halaman yang benar atau valid maka secara otomatis akan membantu memberitahu mesin pencari memperbaiki crawl pada website Anda dan juga pengunjung website Anda akan dibawa ke halaman yang benar ketika mengaksesnya.
Pada wordpress, Anda dapat melakukan redirect dengan mudah dengan menggunakan plugin redirect. Anda cukup menginstal plugin tersebut dan kemudian melakukan konfigurasi di dalamnya.
Cara Melakukan Redirect Menggunakan .htaccess
Di artikel ini kami hanya akan membahas cara melakukan redirect dengan menggunakan .htaccess dan untuk redirect dengan menggunakan plugin wordpress atau dengan cara lainnya akan kami bahas di artikel selanjutnya.
Redirect non-www ke www .htaccess
Untuk melakukan redirect non-www ke www, maka Anda dapat menambahkan baris perintah berikut pada .htaccess Anda:
[pastacode lang=”php” message=”” highlight=”” provider=”manual” manual=”RewriteCond%20%25%7BHTTP_HOST%7D%20%5Edomainanda.com%20%5BNC%5D%0ARewriteRule%20%5E(.*)%24%20http%3A%2F%2Fwww.domainanda.com%2F%241%20%5BL%2CR%3D301%5D”/]
Redirect www ke non-www .htaccess
Untuk redirect www ke non-www, maka Anda dapat melakukan dengan menambahkan baris perintah berikut pada .htaccess:
[pastacode lang=”php” message=”” highlight=”” provider=”manual” manual=”RewriteCond%20%25%7BHTTP_HOST%7D%20%5Ewww.domainanda.com%20%5BNC%5D%0ARewriteRule%20%5E(.*)%24%20http%3A%2F%2Fdomainanda.com%2F%241%20%5BL%2CR%3D301%5D”/]
Redirect url tertentu ke url lain dalam satu website
.htaccess juga dapat digunakan untuk mengarahkan url tertentu yang sudah tidak digunakan ke url lain yang berkaitan dengan menambahkan baris perintah berikut:
[pastacode lang=”php” message=”” highlight=”” provider=”manual” manual=”Redirect%20301%20http%3A%2F%2Fdomainanda.com%2Furllama.html%20http%3A%2F%2Fdomainanda.com%2Furlbaru.html”/]
atau
[pastacode lang=”php” message=”” highlight=”” provider=”manual” manual=”Redirect%20301%20%2Furllama.html%20%2Furlbaru.html”/]
Redirect url tertentu ke url lain dalam satu website
Dengan .htaccess, Anda juga dapat mengarahkan url atau file tertentu ke website lain dengan menambahkan baris perintah berikut:
[pastacode lang=”php” message=”” highlight=”” provider=”manual” manual=”Redirect%20301%20%2Furllama.html%20http%3A%2F%2Fdomainbaru.net%2Furlbaru.html”/]
atau
[pastacode lang=”php” message=”” highlight=”” provider=”manual” manual=”Redirect%20301%20%2Furllama.html%20http%3A%2F%2Fdomainbaru.net%2Furlbaru.html”/]
Redirect seluruh website ke website lain
Untuk melakukan redirect seluruh isi website baik dengan www atau tanpa www ke website lain, maka dapat dilakukan dengan menambahkan baris berikut pada .htaccess:
[pastacode lang=”php” manual=”RewriteCond%20%25%7BHTTP_HOST%7D%20%5Edomainlama.com%20%5BNC%2COR%5D%0ARewriteCond%20%25%7BHTTP_HOST%7D%20%5Ewww.domainlama.com%20%5BNC%5D%0ARewriteRule%20%5E(.*)%24%20http%3A%2F%2Fdomainbaru.com%2F%241%20%5BL%2CR%3D301%2CNC%5D” message=”” highlight=”” provider=”manual”/]
Redirect Url Direktori ke Halaman Utama
Kita dapat melakukan redirect dari direktori ke halaman utama kita. Misalnya, sebelumnya kita memiliki url https://www.idsysadmin.com/blog dan karena beberapa hal kita memindahkan semua halaman blog tersebut ke website utama, yaitu https://www.idsysadmin.com. Untuk itu, kita dapat melakukan redirect menggunakan .htaccess dengan:
[pastacode lang=”php” manual=”RedirectMatch%20301%20%2Fblog%2F(.*)%20https%3A%2F%2Fwww.idsysadmin.com%2F%241″ message=”” highlight=”” provider=”manual”/]
Sebaliknya, jika ingin melakukan redirect dari https://www.idsysadmin.com ke https://www.idsysadmin.com/blog, maka kita dapat melakukan redirect menggunakan .htaccess berikut:
[pastacode lang=”php” manual=”RedirectMatch%20%5E%2F%24%20https%3A%2F%2Fwww.idsysadmin.com%2Fblog” message=”” highlight=”” provider=”manual”/]
Perbedaan utama antara Redirect dan RedirectMatch adalah bahwa Redirect hanya menggunakan pola tunggal yang artinya akan meredirect seluruh url sedangkan RedirectMatch sesuai pola yang ditentukan. Misalnya redirect /blog dan seterusnya.
Kita juga dapat melakukan redirect dari sub directory ke sub directory lainnya. Misalnya kita ingin melakukan redirect dari semua URL pada /blog/ (contoh: https://www.idsysadmin.com/blog/artikel-pertama) dan semua artikel yang ada pada /blog/ ke https://www.idsysadmin.com/tutorial/artikel-pertama, maka kita dapat menambahkan rule redirect .htaccess berikut:
[pastacode lang=”apacheconf” manual=”RedirectMatch%20301%20%2Fblog%2F(.*)%20https%3A%2F%2Fwww.idsysadmin.com%2Ftutorial%2F%241″ message=”” highlight=”” provider=”manual”/]
Bonus – Perbedaan Redirect 301 dan 302
Anda dapat melakukan redirect halaman ke halaman atau ke website lain dengan baik dengan menggunakan redirect 301 dan 302.
Contoh redirect 301
[pastacode lang=”php” manual=”Redirect%20301%20http%3A%2F%2Fdomainanda.com%2Furllama.html%20http%3A%2F%2Fdomainanda.com%2Furlbaru.html” message=”” highlight=”” provider=”manual”/]
Contoh redirect 302
[pastacode lang=”php” manual=”Redirect%20302%20http%3A%2F%2Fdomainanda.com%2Furllama.html%20http%3A%2F%2Fdomainanda.com%2Furlbaru.html” message=”” highlight=”” provider=”manual”/]
Namun, ada perbedaan mendasar yang perlu Anda ketahui tentang perbedaan redirect menggunakan .htaccess redirect 301 dan 302 karena hal ini berkaitan dengan SEO dan berkaitan dengan bagaimana mesin pencari memperlakukan redirect yang Anda lakukan tersebut.
Ketika Anda melakukan redirect halaman dengan redirect 301 maka artinya Anda me-redirect atau mengalihkan pengunjung pada halaman tersebut ke halaman atau website lain secara permanen. Redirect 301 akan memberikan respon HTTP 301 yang artinya memberitahu pengunjung (termasuk mesin pencari) bahwa halaman tersebut dipindahkan secara permanen.
Sementara itu, redirect 302 akan memberikan respon 302 found pada HTTP yang artinya HTTP 302 memberitahu pengunjung halaman yang Anda redirect atau alihkan tersebut termasuk mesin pencari bahwa halaman tersebut telah dipindahkan sementara waktu.
Redirect 301 memberikan keuntungan jangka panjang misalnya untuk mengarahkan domain ke URL afiliasi dan lain-lain yang tentu waktunya sangat lama bahkan selamanya. Sedangkan 302 akan mengarahkan halaman ke url sementara waktu saja dan sangat berguna ketika Anda melakukan maintenance website Anda sehingga mesin pencari mengetahui redirect tersebut sementara waktu saja dan akan kembali menelusurinya dalam waktu dekat untuk mengetahui URL permanennya.
Dengan beberapa variasi redirect tersebut maka kami harap dapat membantu Anda dalam melakukan redirect menggunakan .htaccess url yang mengalami broken link atau tidak terpakai ke halaman yang benar sehingga tidak mendapatkan pinalti dari google. Silakan share pendapat Anda atau bertanya terkait redirect dengan .htaccess melalui form komentar yang kami sediakan. Kami akan membantu permasalahan redirect yang Anda alami melalui komentar.
Semoga bermanfaat.
33 Comments
Rahmat
March 3, 2016 at 2:16 pmterima kasih artikelnya sangat bermanfaat sekali
SysAdmin
March 26, 2016 at 9:06 pmTerimakasih atas feedbacknya dan sukses selalu.
For Guides
May 27, 2016 at 7:52 amsangat membantu, terima kasih
flashlagu
July 2, 2016 at 10:23 amterimakasih mas, download script punya orang tapi diredirect ahahah :v
saya coba ini mungkin membantu. terimakasih 🙂
Wayan
July 2, 2016 at 1:57 pmTerima kasih telah berkunjung. kalau masalah yang terjadi karena insstalasi themes atau plugin nulled atau bajakan atau dari sumber yang tidak dapat dipercaya maka solusinya adalah menghapus script tersebut. Hal ini karena script tersebut telah disisipi malware di dalamnya.
Informasi pada artikel kami ini mungkin dapat membantu:
Membersihkan malware wordpress
Perlunya menggunakan versi wordpress terbaru
Semoga bermanfaat.
Ngurah Arnawa
August 27, 2016 at 2:06 pmbli, tiyang nak bali salam kenal, kalau redirect melalui httcasses error 404 biar sekalian ke home bagaimana caranya ya?
Wayan
August 28, 2016 at 5:38 amSalama kenal 🙂
untuk melakukan redirect ke home page atau ke halaman khusus bisa dilakukan dengan menggunakan plugin Easy 404 Redirect. URL plugin berikut dapat membantu >> https://wordpress.org/plugins/easy-404-redirect/screenshots/
shavira
July 27, 2016 at 5:19 amThanks artikelnya. sangat membantu
agung
September 5, 2016 at 9:55 amkalo direct https ke http gimana ya gan 🙁
aku lagi problem ni, semua link double
Wayan
September 9, 2016 at 4:05 pmJika wordpress, cobalah rename .htaccess Anda menjadi htaccess.bak dan ubah base urlnya dari menu General >> Settings. Dengan begitu, url Anda akan kembali.
Download Game Android
September 9, 2016 at 3:58 pmpertamax,,, ijin coba dulu
Wayan
September 9, 2016 at 5:35 pmsilakan. kami harap dapat membantu dan memberikan pengetahuan untuk semua pembaca tentan cara menggunakan .htaccess dengan benar 🙂
Muh Imam Samur
September 10, 2016 at 8:03 pmkalo redirect dari domain satu ke domain yang lain dalam satu hosting bisa ngk yahh???
Wayan
September 17, 2016 at 6:07 amTentu bisa. Jadi, untuk melakukan redirect ke domain atau website lain dapat menggunakan:
RewriteCond %{HTTP_HOST} ^domainlama.com[NC,OR]
RewriteCond %{HTTP_HOST} ^www.domainlama.com [NC]
RewriteRule ^(.*)$ http://domainbaru.com/$1 [L,R=301,NC]
Search Lagu
September 16, 2016 at 10:11 pmsaya baru tahu kalau redirect 301 302 itu beda, terimakasih atas informasinya yang sangat membantu saya..
Wayan
September 17, 2016 at 6:06 amBenar sekali. Redirect htaccess dengan 301 artinya adalah redirect permanen dan redirect dengan 302 artinya adalah redirect temporary. Ini sangat penting untuk SEO jadi pastikan untuk menggunakannya dengan tepat.
Yudha
September 28, 2016 at 6:37 pmCara redirect akses www menjadi non-www pada Blogger gimana ya? Saya bingung, ga ada pilihan cpanelnya karena saya cuman beli domain saja. Terus supaya saya bisa masuk ke cpanelnya gimana ya? Terima kasih 😀
Wayan
October 3, 2016 at 5:39 amUntuk blogspot, hal ini tidak dapat dilakukan karena blogspot sendiri menggunakan CNAME untuk pointing ke server mereka. CNAME sendiri adalah record DNS untuk alias atau dengan kata lain adalah subdomain. Namun, Anda tidak perlu khawatir karena non-www (http saja) sudah otomatis diredirect ke www oleh blogspot sehingga secara SEO hal ini sangat baik. Pebedaan antara url www dan non-www dapat dicek pada: https://www.idsysadmin.com/perbedaan-www-dan-non-www-untuk-seo.html
Kami sendiri lebih menyarankan untuk menggunakan url www daripada non-www. Di WordPress, redirect www ke non-www sangat mudah dilakukan dan silakan cek panduan berikut: https://www.idsysadmin.com/cara-mengubah-url-wordpress-menjadi-www.html
Namun, jika Anda masih ingin menggunakan url tanpa www (non-www), maka kami sangat menyarankan agar melakukan migrasi blogspot ke wordpress. Panduan pada bahasan kami berikut dapat membantu Anda melakukan migrasi blogspot ke wordpress:
https://www.idsysadmin.com/cara-migrasi-blogspot-ke-wordpress.html
kucing raas
November 17, 2016 at 1:50 amkalo auto redirect seluruh link keluar ke sebuah halaman tententu gimana caranya gan?
tengkiyu
Wayan
November 17, 2016 at 11:02 pmBisa dirinci maksud redirect link keluar? karena dengan redirect:
RewriteCond %{HTTP_HOST} ^domainlama.com[NC,OR]
RewriteCond %{HTTP_HOST} ^www.domainlama.com [NC]
RewriteRule ^(.*)$ http://domainbaru.com/$1 [L,R=301,NC]
Maka secara otomatis seluruh isi domain lama Anda akan di redirect ke domain baru.
adrian
November 23, 2016 at 12:15 amsaya ga paham ini mas
login kemana
buatnya di mana
simpennya di mana
bingung ga ada tutornya
mau ganti alamat situs yang dulu ke yg baru lewat google console tp ada step yg di haruskan saya buat file htaccess 301 dulu
Wayan
November 24, 2016 at 1:26 pmhtaccess dapat dibuat di file home root website Anda. Jika Anda menggunakan cPanel, silakan akses file manager dan buatlah .htaccess di public_html Anda.
dendietutorial
November 27, 2016 at 7:38 pmmantap sekali terima kasih banyak
Banjir Lagu
December 15, 2016 at 4:06 pmsaya sangat berterima kasih dengan adanya artikel ini sehingga saya dapat memindahkan pengunjung web saya yang lama ke domain yang baru,
Wayan
December 15, 2016 at 10:18 pmTerima kasih atas feedbacknya. pastikan juga Anda memahami redirect 301 dan 302 untuk memastikan SEO yang baik ketika melakukan redirect.
otista78
January 1, 2017 at 8:53 pmselamat tahun baru 2017 gan! 🙂
mohon petunjuk gan, kalau ada subdomain misal site1.abc.com, ingin supaya kontennya / isi web nya sama dengan konten abc.com, tanpa merubah alamat url pada address bar (Tetap terbaca site1.abc.com).
Apakah ada script htaccessnya yg memungkinkan hal tsb gan?
kalau ada mohon dishare gan, kalau tidak ada saya harus gunakan apa gan? terimakasih gan.
Wayan
January 7, 2017 at 9:21 amUntuk hal tersebut tidak dapat dilakukan dengan melakukan redirect .htaccess. Solusi hal ini dapat dilakukan dengan menggunakan cname.
Silakan akses dns editor Anda (jika pada cPanel ada di menu Advance DNS Zone Editor), ubah type record dari subdomain site1.abc.com ke CNAME dan arahkan ke domain abc.com.
Dengan begitu, maka site1.abc.com akan menampilkan konten yang sama persis dengan konten abc.com tetapi URLnya site1.abc.com.
Semoga bermanfaat.
narmadi
July 10, 2017 at 5:25 pmSalam,
Mohon pencerahan jika kita ingin merubah semua ekstensi https ke http termasuk yang di dalam artikel-artikel terdahulu bagaimana caranya yah biar praktis tidak mengedit artikel satu persatu inner link tersebut?
Sebelumya saya ucapkan terima kasih.
Wayan
July 26, 2017 at 5:50 amUntuk pertanyaan ini telah kami pindahkan ke https://www.wordpress.id/pertanyaan/tentang/ubah-url-wordpress-http-ke-https agar dibantu komunitas wordpress Indonesia dan telah ada balasannya. Semoga bermanfaat.
Jonatan Ketty
June 4, 2018 at 11:06 amHalo kak, kalo mau redirect dari folde utama project seperti public(pada hosting) ke 1 folder di dalam public yang terdapat file index.php seperti apa ya ?
Wayan
June 5, 2018 at 5:38 amCara melakukan redirect .htaccess dari domain utama ke directory baru bisa di lihat di sini
Saitama Sensei
September 21, 2019 at 7:37 pmHalo min, saya mau tanya kalau cara redirect seluruh url bagaimana yaa di satu domain yang sama, misal semua url lama domain.com/shop/produk1 diredirect ke domain.com/product/produk1 dengan jumlah yang banyak urlnya.jadi migrasinya dari url shop/produk1 ke product/produk1 dsb. Mohon infonya min. Thanks
Wayan
April 12, 2020 at 7:44 amHalo mas,
Untuk melakukan redirect .htaccess dengan kondisi tersebut, maka kita bisa menggunakan redirect match (Lihat penjelasan pada: Redirect Url Direktori ke Halaman Utama).
Dalam kasus mas ini, maka rulenya adalah:
RedirectMatch 301 /shop/(.*) https://domain.com/product/$1
Dengan begitu, semua url dari shop akan di redirect ke product.
Note: pastikan url-nya sudah di-migrasikan dari backend dan jika menggunakan WordPress bisa menggunakan permalink.