PG WORKS

PHPやLinux(サーバー)などのノウハウや、便利なツールを紹介していきます。

【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処理を追加しておきましょう。