【Apache】htaccessを使いURLを書き換えてみよう
「.htaccess」を使いURLの書き換え対応のサンプルを紹介したいと思います。
まずは、サンプルを見てみましょう。
URL書き換えサンプル
Options +MultiViews
RewriteEngine on
RewriteCond []%{QUERY_STRING}[] ^id=(.*)&name=(.*)$
RewriteRule []^search.php[] /item/%1-%2? [R=301,L]
「Options +MultiViews」で拡張子の省略が可能になります。
http://zen6a.net/search.php
通常はファイルの拡張子を入力する必要がありますが、下記のように変更が可能です。
http://zen6a.net/search
次に、クエリーストリング部分を静的URLぽくしている箇所が下記の部分になります。
RewriteCond []%{QUERY_STRING}[] ^id=(.*)&name=(.*)$
RewriteRule []^search.php[] /search/%1-%2? [R=301,L]
実際の例を書いていくと、
http://zen6a.net/search.php?id=111&name=aaa[]
上記のURLで飛んできたものに対して、下記のURLに変換するようにしています。
http://zen6a.net/search/111-aaa
URLを見た限り、動的なページではない形になりました。
なぜURLを変更するのか
かなり昔の話になりますが、動的なURLだと検索エンジンのクロールが正常に働かないということがありました。
今は気にする必要はありませんが、公開するサイトでしたら、どんなページなのかわかりやすくした方がいいですし、見栄えも良くなると思います。
また、ページ送りなどでコンテンツが同じになりそうであれば、クエリーストリングなどで判断して、noindex処理を追加しておきましょう。