何十回も解決された次の問題がありますが、解決策が見つかりません。
私はきれいな URL を取得したいブログ エンジンを書いているので、そのために Apache を使用mod_rewrite
し.htaccess
ています。PHPスクリプトできれいなURLを書くことができるので、のようなもの/page/3 => /?s=3
は完全にうまく機能しています. しかし、送信に使用する検索用のフォーム フィールドがあるためmethod="get"
、クライアントに見苦しい URL を指定する以外に選択肢はありません。だから私が欲しいのは、一種のRedirect
クライアントであり、次にRewrite
サーバーの URL です/?q=foo =client=> /search/foo =server=> /?q=foo
。(また/?q=foo&s=2
=> /search/2/foo
)
どういうわけか私のルールが機能しません。助けていただければ幸いです。
RewriteRule ^(index\.php)?\?q=(.*)$ search/$2 [R,L]
RewriteRule ^(index\.php)?\?q=(.*)&s=(.*)$ search/$3/$2 [R,L]
RewriteRule ^search/(\d+)/(.*)/?$ index.php?q=$2&s=$1 [NC,L]
RewriteRule ^search/([^/]*)/?$ index.php?q=$1 [NC,L]