具体的な5の検索結果ページのURLには、いくつかのパラメーターが含まれています。そのパラメータを削除してURLをユーザーフレンドリーにする方法
2 に答える
Apache サーバーでは、mod_rewrite モジュールを使用して RewriteEngine を使用することをお勧めします。このモジュールを使用すると、一部の内部 URL のエイリアスを指定できます (もちろんパラメーターも使用します)。これには RegEx を使用することもできます。
短い答え: 面倒なことをする価値はおそらくありません。
長い答え... 検索ブロックを使用すると、次の 3 つのクエリ パラメータが表示されると思います。
- クエリ
- 検索パス[]
- 参加する
最初のパラメーターは検索を機能させるために必要ですが、他の 2 つは削除できます。私がconcrete5テーマを構築するとき、私は通常、検索フォームのhtmlを「ハードコーディング」して、送信されるパラメーターを制御できるようにします(基本的に、送信ボタンに「名前」を提供せず、 「search_paths」隠しフィールド)。
ただし、「クエリ」パラメーターを取り除くのは簡単ではありません。問題は、検索の場合、 URLにそのようなパラメーターが必要なことです。この問題は、JavaScript を使用して回避できます。検索フォームが送信されたら、jquery を使用してリクエストを書き換え、そのパラメータが URL の末尾に配置されるようにします (例: http://example.com/search?query =testはhttp://example.com/search/testになります)。次に、@tuxtimo が示唆するように、書き換えルールを .htaccess ファイルに追加して、URL の最後の部分を取得し、システムが期待する ?query パラメーターとして扱います。しかし、これは、ユーザーが JavaScript を有効にしていない場合には機能しません (したがって、おそらく Googlebot にとってもそうではありません。つまり、これは SEO の目的にはまったく役立たないことを意味します。これが、あなたが最初にこの質問をします)。
また、検索結果を表示するページの下に別のページを追加すると、多くの問題が発生します (最上位の検索ページ パスの後のすべてを検索パラメーターとして扱う書き換えルールがあるためです --そのパスの下に存在するアドレスに実際に到達することはできません)。
したがって、?query パラメーターのみを送信するきれいな検索フォームを作成し、それをそのままにしておきます。/search-term ほどユーザーフレンドリーではないと思います。