.htaccess redirect dengan string kueri pada struktur situs web baru

May 21 2019

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

quntuk querysetelah?

Sesuatu seperti itu, tidak berhasil

RewriteRule ^find?q=[^/] /search?query=[^/] [R=302,L]

Jawaban

1 DocRoot May 21 2019 at 22:14

The RewriteRule pola pertandingan melawan URL-jalan hanya - ini terutama tidak termasuk string.

Sebagai gantinya, Anda perlu menggunakan RewriteCondarahan untuk memeriksa QUERY_STRINGvariabel server dan menangkap sisa string kueri setelah q=.

Sebagai contoh:

RewriteCond %{QUERY_STRING} ^q=(.*)
RewriteRule ^find$ /search?query=%1 [R=302,L]

%1adalah referensi kembali ke grup yang ditangkap di CondPattern yang cocok terakhir . yaitu. (.*)- nilai qparameter 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.