.htaccess redirect dengan string kueri pada struktur situs web baru
Saya telah mengubah struktur URL situs web dan saya ingin mengalihkan pengguna saya.
Perlu dialihkan dari:
https://example.com/find?q=batman
Untuk
https://example.com/search?query=batman
di mana "batman" adalah frase pencarian .
Masalahnya bagi saya, bagaimana cara berubah
q
untuk query
setelah?
Sesuatu seperti itu, tidak berhasil
RewriteRule ^find?q=[^/] /search?query=[^/] [R=302,L]
Jawaban
The RewriteRule
pola pertandingan melawan URL-jalan hanya - ini terutama tidak termasuk string.
Sebagai gantinya, Anda perlu menggunakan RewriteCond
arahan untuk memeriksa QUERY_STRING
variabel server dan menangkap sisa string kueri setelah q=
.
Sebagai contoh:
RewriteCond %{QUERY_STRING} ^q=(.*)
RewriteRule ^find$ /search?query=%1 [R=302,L]
%1
adalah referensi kembali ke grup yang ditangkap di CondPattern yang cocok terakhir . yaitu. (.*)
- nilai q
parameter URL dan sisa string kueri.
Ubah 302 (sementara) redirect ke 301 (permanen) hanya setelah Anda mengonfirmasi bahwa itu berfungsi dengan baik - untuk menghindari masalah cache.