検索リンクを書き直す最良の方法を探しています。私のサイトには次のものがあります。
http://domain.com/search.php?keyword=blue+widget&Search=Search
私はこれで終わりたい:
http://domain.com/blue-widget
データベースはなく、ただの html/css です。
前もって感謝します。
これに近いことをしたいと思います:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ search.php?keyword=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ search.php?keyword=$1
ジェイソンの答えは、1つの例でのみ機能します。
アップデート:
正規表現部分にさらに文字を追加して、許可することができます。たとえば、 を許可するには、次のよう*
にします。
^([a-zA-Z0-9_-*]+)$
誰かが URL に不適切な文字を直接使用している場合は、404 ページにリダイレクトできます。ただし、ユーザーがフォームに入力した内容に基づいてユーザーの URL を呼び出している場合は、404 ページで終わる URL に送信してユーザーに通知する前に、不適切な文字の値を確認できます。
書き換えルールは逆に機能します。したがって、リンクは次のようblue-widget
に書き換えられますsearch.php
RewriteEngine On
RewriteBase /
RewriteRule ^/blue-widget$ /search.php?keyword=blue+widget&Search=Search [L]
注:追加のクエリ文字列パラメーターを受け入れる場合は、QSA
フラグを使用する必要があります。