Apakah Anda sedang ingin membuat redirect url dari satu lokasi ke lainnya? Panduan sederhana ini menunjukkan Anda bagaimana melakukannya dengan Apache/ .htaccess, PHP, JavaScript, HTML, dan masih banyak lagi.
Setiap teknik redirect dijelaskan secara singkat dan mencakup contoh siap pakai, copy & paste.
Ambil saja kode yang Anda butuhkan dan gunakan dengan baik. Dan berikut ini beberapa teknik redirect url yang bisa Anda terapkan.
Redirect URL dengan PHP
Pengalihan dengan PHP dilakukan menggunakan fungsi header()
, contohnya:
<?php header('location: http://example.com/'); exit; ?>
Yang perlu Anda lakukan adalah mengubah URL menjadi apapun yang Anda inginkan. Perhatikan bahwa penting agar fungsi ini disertakan di awal halaman web, sebelum ada output HTML.
Untuk mempelajari lebih lanjut tentang menyesuaikan teknik ini, periksa dokumentasi PHP.
Untuk me-redirect melalui PHP setelah beberapa periode waktu:
<?php header('Refresh:5; URL=http://example.com/'); exit; ?>
Disini kita ulang ke example.com
setelah 5 detik. Ubah sesuai keinginan.
Redirect URL dengan JavaScript
Berikut adalah cara termudah untuk me-redirect URL dengan JavaScript:
<script type="text/javascript"> document.location.href = 'http://example.com/'; </script>
Sekali lagi, satu-satunya modifikasi yang dibutuhkan adalah mengubah URL sesuai kebutuhan anda.
Redirect URL dengan HTML
Ya, Anda dapat me-redirect pengguna ke URL baru menggunakan HTML lama yang biasa. Berikut adalah contohnya:
<meta http-equiv="refresh" content="10; url=http://example.com/" />
Ini disebut sebagai redirect meta-refresh. Anda dapat menyesuaikan jumlah waktu (dalam detik) dengan mengubah 10 menjadi apapun yang diperlukan.
Perhatikan bahwa teknik redirect ini sering disalahgunakan oleh spammer dan jenis jahat lainnya, jadi hati-hati jika Anda menerapkannya di situs umum.
Dalam kasus tersebut, dianjurkan untuk menjaga interval penyegaran di atas 8 detik untuk mencegah potensi hukuman SEO.
Redirect URL dengan Perl
Berikut adalah dua cara untuk me-redirect URL dengan Perl:
#!/usr/bin/perl print "Location: http://example.com\n\n"; exit;
Redirect URL dengan ASP (VB Script)
Untuk me-redirect URL dengan ASP, tambahkan kode berikut:
<%@ Language=VBScript %> <% response.status="301 moved permanently" Response.AddHeader "Location", "http://example.com" %>
Sesuaikan sesuai kebutuhan anda.
Redirect URL dengan mod_alias Apache
Cara termudah untuk me-redirect ulang pada server Apache:
Redirect 301 /old-location.html http://example.com/new-location/
Kode tersebut dapat ditambahkan ke .htaccess
atau file konfigurasi server Apache. Berikut adalah sintaks untuk teknik ini:
[Directive] [Status Code] [Old URL] [New URL]
Jadi Anda bisa mengubah faktor-faktor ini sesuai keinginan. Misalnya, jika kami perlu mencocokkan URL lama secara dinamis, sehingga semua URL berikut diarahkan:
http://example.com/old-directory/file-01.html http://example.com/old-directory/file-02.html http://example.com/old-directory/file-03.html . . .
..kita dapat menggunakan RedirectMatch
bukan Redirect
:
RedirectMatch 301 /old-directory/file-(.*)\.html http://example.com/new-directory/file-$1.html
Demikian juga, kita bisa mengubah kode status dari 301 (redirect permanen) menjadi 302 (redirect sementara). Atau ubah ke kode status lain yang valid sesuai keinginan. Berikut adalah panduan untuk ekspresi reguler (regex) yang digunakan dalam teknik RedirectMatch
ini:
(.*)
– cocok dengan karakter apapun (atau tidak ada karakter)\.
–cocok dengan titik literal$1
– mengembalikan pola yang cocok dengan yang pertama(.*)
Redirect URL dengan Apache’s mod_rewrite
Cara yang lebih ampuh untuk redirect dengan Apache adalah dengan menggunakan modul rewrite-nya, mod_rewrite
. Berikut adalah beberapa contoh yang bisa ditambahkan ke .htaccess
atau file konfigurasi Apache.
Contoh 1: Redirect dari www ke bukan-www
Contoh ini me-redirect semua versi www
dari URL ke versi bukan-www
yang setara.
<IfModule mod_rewrite.c> RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] RewriteRule (.*) http://example.com/$1 [R=301,L] </IfModule>
Ini disebut kanonisasi. Berikut adalah beberapa catatan tentang regex yang digunakan dalam teknik ini:
^
– menunjukkan awal dari URI yang diminta\.
– cocok dengan titik literal$
– menunjukkan akhir dari URI yang diminta[NC]
– membuat pola case-insensitive yang cocok(.*)
– cocok dengan karakter apapun (atau tidak ada karakter)$1
– cocok dengan pola dari tanda kurung(.*)
dalamRewriteRule
[R=301,L]
– mengirimkan kode status301
“Permanent”, dan menginstruksikan Apache untuk berhenti memproses set aturan
Contoh 2: Redirect seluruh domain
Untuk me-redirect semua dari domain saat ini ke domain baru:
<IfModule mod_rewrite.c> RewriteRule ^/(.*) https://new-domain.tld/$1 [R=301,L] </IfModule>
Demikian juga, untuk me-redirect semua permintaan dari subdomain di situs saat ini ke subdomain yang sama di situs baru:
<IfModule mod_rewrite.c> RewriteCond %{HTTP_HOST} (.*)\.old-domain\.tld [NC] RewriteRule ^/(.*) https://%1.new-domain.tld/$1 [R=301,L] </IfModule>
Berikut adalah beberapa catatan tentang regex yang digunakan dalam teknik ini:
^
– menunjukkan awal dari URI yang diminta(.*)
– cocok dengan karakter apapun (atau tidak ada karakter)$1
– cocok dengan pola dari tanda kurung(.*)
dalamRewriteRule
%1
– cocok dengan pola pertama dari tanda kurung(.*)
dalamRewriteCond
[R=301,L]
– mengirimkan kode status301
“Permanent”, dan menginstruksikan Apache untuk berhenti memproses set aturan
Perhatikan bahwa, untuk kedua teknik ini bekerja dengan benar, kedua domain harus memiliki struktur file yang sama. Jadi setiap direktori dan sumber daya pada domain saat ini juga ada di domain baru.
Jika tidak, Anda akan mendapatkan banyak kesalahan 404
“Tidak Ditemukan” di domain baru.
Contoh 3: Redirect semua HTML dan file PHP
Inilah contoh mod_rewrite
lain yang lebih canggih:
<IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} ^/old-directory/(.*)\.(html|php)$ [NC] RewriteRule (.*) http://example.com/new-directory/%1.%2 [R=301,L] </IfModule>
Di sini kita me-redirect semua permintaan untuk file HTML atau PHP yang ada di /old-directory/
. Semua permintaan yang cocok akan diarahkan ke file yang sama yang terletak di /new-directory/
.
Beberapa catatan tentang regex yang digunakan dalam redirect ini:
^
– menunjukkan awal dari URI yang diminta(.*)
– cocok dengan karakter apapun (atau tidak ada karakter)\.
– cocok dengan titik literal(html|php)
– cocok dengan html atau php[NC]
– membuat pola case-insensitive yang cocok%1
– cocok dengan pola pertama dari tanda kurung(.*)
dalamRewriteCond
%2
– cocok dengan pola kedua dari tanda kurung(html|php)
dalamRewriteCond
[R=301,L]
– mengirimkan kode status301
“Permanent”, dan menginstruksikan Apache untuk berhenti memproses set aturan
Redirect 404 errors dengan Apache
Terakhir tapi bukan yang akhir, berikut adalah teknik praktis untuk me-redirect semua kesalahan 404
“Tidak Ditemukan” ke URL tertentu.
ErrorDocument 404 http://example.com/wherever/
Cukup ganti URL ke mana saja dan tambahkan kode ke file root .htaccess
situs Anda, atau tambahkan ke file konfigurasi Apache. Pelajari lebih lanjut tentang menyesuaikan kesalahan melalui .htaccess.
Sumber: Perishable Press
Leave a Reply