ユーザーが自分のサイトを検索するときにわかりやすい URL を提供する方法を探しています。現在、半機能オプションがありますが、1 つの検索用語でしか機能しません。できるだけ多くの検索語を追加できるようにしたいと考えています。
以下のようにURLを設定しています。
http://www.mydomain.com/tutorial/usersearch=word/sort=1
.htaccess で次の正規表現を使用します。
# Rewrite rule for the tutorial 'page selection' links
RewriteRule ^tutorial/page([0-9]+)$ tutorial.php?page=$1
RewriteRule ^tutorial/page([0-9]+)/usersearch=([A-Za-z_%20+-]+)$ tutorial.php?page=$1&usersearch=$2
RewriteRule ^tutorial/page([0-9]+)/usersearch=([A-Za-z_%20+-]+)/sort=([0-9]+)$ tutorial.php?page=$1&usersearch=$2&sort=$3
RewriteRule ^tutorial/usersearch=([A-Za-z_-]+)(/sort=([0-9]+))?$ tutorial.php?usersearch=$1&$2
上記のコードの最後の行は、作成しようとしているわかりやすい検索 URL を参照しています。/sort=integer 部分もオプションです。検索語を入力して送信ボタンを押すと、不親切な URL '&submit=Search' に以下が追加されるので、これもオプションとして考慮する必要があるかどうかわかりません。
上記の .htaccess 正規表現は機能しますが、検索語は 1 つしかありません。
' http://www.mydomain.com/tutorial/usersearch=word/sort=3 ' - これは機能しますが、'word' の後にスペースを追加するとすぐに URL が失敗し、404 エラーが発生します。( )?, (%20)? を追加してみました オプションのスペース用ですが、そこでも失敗します。最初の文字クラス内にスペースを追加しようとしましたが、完全に失敗します。
上記のすべての書き換えをグループ化する方法があると確信していますが、私は惨めに失敗しています。複数の検索語に一致するように正規表現を変更する方法はありますか?
助けてくれてありがとう。