AjaxでもURLを変更したい

pushStateという関数で、履歴やURLを操作することができるようです。
たとえばWordPressの検索画面をAjaxで動かしていたら、以下のようにすることで、 AjaxでもURLを変更することができます。

jQuery(document).ready(function($) {
var search_query = $("#s").val();
window.history.pushState(null, null, '<?php bloginfo('url'); ?>/?s='+ search_query);
});

pushStateは履歴に追加するということなので、「戻る」も有効になりますが、Ajaxの場合別の処理を追加しなければ戻っても画面の表示が変わらないので注意してください。