以下の旧URLに来た場合、301リダイレクトで新URLへ転送したいのですが、
.htaccessのRewriteRuleはどのように書けばいいでしょうか? いろいろ試していますが、
うまくいきません。アドバイスいただければ幸いです。

旧URL https://example.com/stay/db/database.cgi?cmd=dp&num=1234&dp=ad.html
新URL https://example.com/stay/db/database.cgi?cmd=dp&num=1234&dp=all.html

【条件追記】上記新旧URLに書きました「1234」という部分は、実は複数あるうちの一つでして、他に「2354」になったURLもあります。この数字が「1234」の時だけリダイレクトしたいのです。

【テスト結果】

URLが新URLへリダイレクトされましたが、以下のエラー画面が出て、

「このページは動作していません 「ドメイン名」でリダイレクトが繰り返し行われました。Cookie を消去してみてください.
ERR_TOO_MANY_REDIRECTS」

新URL https://example.com/stay/db/database.cgi?cmd=dp&num=1234&dp=all.html
の画面が表示されなくなりました。(代わりに上記エラー画面が出ます)
(Cookie を消去してみましたが同じで上記エラー画面が出ます)

【成功しました】

1234があるとリダイレクトし続けるようなので、以下のようにしましたら無事成功しました。


RewriteEngine on
RewriteCond %{REQUEST_URI} !=/stay/db/database.cgi?cmd=dp&num=1234&dp=all.html
RewriteCond %{QUERY_STRING} &num=1234&dp=ad.html
RewriteCond %{QUERY_STRING} ^(.&dp)=(.+)$
RewriteRule .
https://%{HTTP_HOST}%{REQUEST_URI}?%1=all.html [R=301,L]

アドバイスありがとうございました。感謝です。
上記結果で、何か不備がありましたら、ご教示をよろしくお願いいたします。