.htaccessファイルでルーティング設定


.htaccessに記述すること

.htaccesファイルにリライトを記述することで、アクセスの仕方のルールを決めることができる。

例えば、
http://hogehoge.jp/track/share/111?utmsouce=fb_share
http://hogehoge.jp/track/share/2226?utmsouce=fb_share
のようなurlへのアクセスが来た時、share/以下の数字やパラメータによらずに一律で同じファイル(/track/share/index.php)を実行させたい時があったとする。

その場合、/track/share/.htaccessを作成し、

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.+)$ index.php [L]
</IfModule>

のような内容で記述すれば、OK。

  • RewriteEngine OnはRewriteRuleを書くための準備
  • ^(.+)$は正規表現で、「任意の1文字以上の文字列」
  • [L]のLはLastのL。これ以上書き換えられない

.htaccessの有効範囲

.htaccessを置いたディレクトリとその配下のディレクトリにアクセスがあった時に有効。
複数のディレクトリに.htaccessを置くことが可能。より深い階層にある.htaccessが優先的に適用される。

▼参考url
.htaccessをWordPressで徹底活用
.htaccessによるURLの書き換え Rewrite(リライト)
URLをリダイレクト・リライトする場合の.htaccessの設定例