少し調べてみましたが、残念ながらこの問題に関してはまだ途方に暮れており、.htaccessのベテランとはほど遠いので、問題の解決策を見つけることができませんでした.
プラットフォームは Wordpress ですが、この問題は .htaccess で解決できると確信しているので、それほど大きな違いはないと思います。
検索がより使いやすい URL 構造になったときに、検索を書き直す必要があります。残念ながら、?s=Test を /search/Test に変更するだけではうまくいきません。検索から 3 つのパラメーターを取り出してサブフォルダーとして使用し、残りのパラメーターを検索の最後に追加する必要があります。次に例を示します。
古い URL:
http://www.XXXXX.com/?s=Ford&z=59105&ci=Billings&st=MT&r=450&m=15000&pmin=1000&pmax=30000&status=Used&submit=Refine
新しい URL:
http://www.XXXXX.com/search/Used/MT/Billings/?s=Ford&z=59105&r=450&m=15000&pmin=1000&pmax=30000&submit=Refine
ご覧のとおり、パラメーター「status」、「st」、および「ci」がそれぞれ URL に挿入され、残りのすべてのパラメーターが後に続きます。
したがって、基本的には、古い URL を新しい URL にリダイレクトする必要がありますが、新しい URL には古い URL に対応するページが表示されます。
私はこれまでに次のように書いています: (編集: *Explosion Pills の提案に従って {QUERY_STRING} を [L,QSA] に変更*)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?search/([^/]+)/([^/]+)/([^/]+)/?s=([^/]+)?$ /index.php?s=$4&ci=$3&st=$2&status=$1 [L,QSA]
そして、それはうまくいきます。新しい URL を入力するとページが表示されますが、「使用済み」ディレクトリがデータを正しく投稿していないようです。また、古い URL を新しい URL にリダイレクトしないため、これはパズルの半分にすぎません。新しい URL が存在することを簡単に許可します。
ご助力ありがとうございます!これは私を数日間困惑させました。今。